2017-01-25 15 views
1

我寫了下面的python函數,它返回文件地理數據庫路徑的python列表。請注意,input_folder是一個原始字符串,不包含任何Unicode字符。Python的pathlib glob函數在WindowsError上失敗:[123]?

try: 
    gdbs = list(Path(input_folder).glob('**/*.gdb')) 
    for gdb in gdbs: 
     print(gdb) 
except WindowsError, e: 
    print("error") 

說我遇到的問題是,當它遇到在目錄中的文件的路徑Unicode字符pathlibglob方法失敗。

我嘗試了以下,但它仍然失敗,我認爲是因爲我沒有轉換glob發電機遇到的路徑。

try: 
    gdbs = list(Path(unicode(input_folder)).glob('**/*.gdb')) 
    for gdb in gdbs: 
     print(gdb) 
except WindowsError, e: 
    print("error") 

返回的錯誤信息是:

WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: 'R:\\Data\\Africa\\Tanzania\\fromDropbox\\DART\\BRT Phase 2-3 designs\\1.12 Engineering Drawings for Service\\ROAD LIGHT\\PDF\\01.Traffic Sign(Kilwa)-??04.pdf' 

任何幫助來處理下面的錯誤可以理解的。

回答

0

試試這個:

input_folder = r'R:\Data\Africa\Tanzania\fromDropbox\DART\BRT Phase 2-3 designs\1.12 Engineering Drawings for Service\ROAD LIGHT\PDF\01.Traffic Sign(Kilwa)-??04.pdf' 

正確的調用應該有「R」的路徑的前面,並使用單斜槓。

+0

如上所述,路徑是一個原始字符串,所以你的建議並沒有幫助。 –