誰能告訴我爲什麼這個命令的工作:不一致glob.glob結果
lefs = glob.glob(".\lef\*.lef")
但這並不?
techFiles = glob.glob(".\techfile\*.tcl")
我必須添加額外的反斜線,以便爲它工作:
techFiles = glob.glob(".\\techfile\*.tcl")
的其他線路工作正常,沒有額外的反斜槓.. 這些只是用不同的擴展名的簡單文件。
所有文件存在並位於正確的目錄中。
誰能告訴我爲什麼這個命令的工作:不一致glob.glob結果
lefs = glob.glob(".\lef\*.lef")
但這並不?
techFiles = glob.glob(".\techfile\*.tcl")
我必須添加額外的反斜線,以便爲它工作:
techFiles = glob.glob(".\\techfile\*.tcl")
的其他線路工作正常,沒有額外的反斜槓.. 這些只是用不同的擴展名的簡單文件。
所有文件存在並位於正確的目錄中。
在techFiles = glob.glob(".\techfile\*.tcl")
,\t
被解釋爲一個製表字符(其他「有問題字符是\b
,\v
,\a
,\x
,\b
,\f
,\U
,\
後面跟着一個數字,...我可能會忘記一些)
所以路徑是無效的,glob.glob
回報什麼。
你的其他路徑包含\l
和\*
不對應任何逃生sequenc e,所以它沒有被解釋和種類的作品。
傳遞字符串文字與Windows路徑,始終使用原始的前綴,它比逃避每個反斜線簡單:
techFiles = glob.glob(r".\techfile\*.tcl")
稍微偏離主題:有很多的代碼示例這裏有大寫的目錄名:恩glob.glob(".\Techfile\Backlog\*.tcl")
,我總是想知道這是否僅僅是運氣,或者如果大多數人仍然沒有得到這個\t
的問題,並通過大寫找到解決方法,因爲Windows路徑是不區分大小寫的...
'\ t'是選項卡所以glob的字符沒有什麼可掃描的。 –
如果不想反斜槓有任何特殊含義,請使用'r'''。 –
謝謝你們!我知道了。 – Icee