Python pathlib glob函数在Windows上失败错误:[123]



我编写了以下python函数,该函数返回文件-地理数据库路径的python列表。请注意,input_folder是一个原始字符串,不包含unicode字符。

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

我遇到的问题是pathlibglob方法在目录中的文件路径中遇到unicode字符时失败。

我尝试了以下操作,但仍然失败,我认为这是因为我没有转换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'

如有任何帮助处理以下错误,我们将不胜感激。

试试这个:

input_folder = r'R:DataAfricaTanzaniafromDropboxDARTBRT Phase 2-3 designs1.12 Engineering Drawings for ServiceROAD LIGHTPDF1.Traffic Sign(Kilwa)-??04.pdf'

正确的调用应该在路径前面有"r",并使用单斜杠。

pathlib似乎有问题,因为Python 2.7无法处理非ascii字符。pathlib阻塞了Windows 上Python 2上的国际字符

最新更新