我正在從 Postgres DB(列型別String)讀取路徑值。
例如:路徑 | “G:\共享驅動器\2 測驗\2021\08.2021\test.xlsx”
問題是路徑中的一些嵌套目錄以整數開頭(如上),Python 會自動將它們視為十六進制字符。
\2 轉換為 \x02。\08(視為\0)轉換為\x008 \2021(視為\20)轉換為\x821
print(repr('"G:\Shared drives\2 test\2021\08.2021\test.xlsx"'))
> '"G:\\Shared drives\x02 test\x821\x008.2021\test.xlsx"'
如何阻止 Python 解釋這些十六進制值,并將其視為原始字串?
預期結果:
'"G:\\Shared drives\\2 test\\2021\\08.2021\test.xlsx"'
uj5u.com熱心網友回復:
\在 Python 字串文字中開始轉義序列。為了防止這種情況,您大約有四種選擇:
- 正確轉義你的字串。也就是說,將每個路徑分隔符反斜杠加倍:
'"G:\\Shared drives\\2 test\\2021\\08.2021\test.xlsx"' - 使用原始字串來防止轉義序列被解釋:
r'G:\Shared drives\2 test\2021\08.2021\test.xls' - 使用正斜杠而不是反斜杠,它們作為 Windows 路徑有效:
'G:/Shared drives/2 test/2021/08.2021/test.xls' - 不要在 Python 代碼中使用字串文字;相反,從其他來源(例如用戶輸入或檔案)讀取字串。
uj5u.com熱心網友回復:
獲取原始字串:
print(repr(r"G:\Shared drives\2 test\2021\08.2021\test.xlsx"))
輸出:
'G:\\Shared drives\\2 test\\2021\\08.2021\\test.xlsx'
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/324443.html
上一篇:格式化字串輸出
