Python pathlib glob function fails on WindowsError: [123]?
Python pathlib glob function fails on WindowsError: [123]?
我编写了以下 python 函数,其中 returns 一个 python 文件地理数据库路径列表。请注意 input_folder
是原始字符串,不包含任何 unicode 字符。
try:
gdbs = list(Path(input_folder).glob('**/*.gdb'))
for gdb in gdbs:
print(gdb)
except WindowsError, e:
print("error")
我遇到的问题是 pathlib
glob
方法在目录中的文件路径中遇到 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:\Data\Africa\Tanzania\fromDropbox\DART\BRT Phase 2-3 designs.12 Engineering Drawings for Service\ROAD LIGHT\PDF.Traffic Sign(Kilwa)-??04.pdf'
正确的调用应该是路径前面有'r',并且使用单斜杠。
这似乎是 pathlib 的问题,因为 Python 2.7 无法处理 non-ascii 个字符。 pathlib chokes up on international characters on Python 2 on Windows
我编写了以下 python 函数,其中 returns 一个 python 文件地理数据库路径列表。请注意 input_folder
是原始字符串,不包含任何 unicode 字符。
try:
gdbs = list(Path(input_folder).glob('**/*.gdb'))
for gdb in gdbs:
print(gdb)
except WindowsError, e:
print("error")
我遇到的问题是 pathlib
glob
方法在目录中的文件路径中遇到 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:\Data\Africa\Tanzania\fromDropbox\DART\BRT Phase 2-3 designs.12 Engineering Drawings for Service\ROAD LIGHT\PDF.Traffic Sign(Kilwa)-??04.pdf'
正确的调用应该是路径前面有'r',并且使用单斜杠。
这似乎是 pathlib 的问题,因为 Python 2.7 无法处理 non-ascii 个字符。 pathlib chokes up on international characters on Python 2 on Windows