繁体   English   中英

Python pathlib glob函数在WindowsError上失败:[123]?

[英]Python pathlib glob function fails on WindowsError: [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")

我遇到的问题是当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\1.12 Engineering Drawings for Service\ROAD LIGHT\PDF\01.Traffic Sign(Kilwa)-??04.pdf'

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

这似乎是pathlib的一个问题,因为Python 2.7无法处理非ascii字符。 pathlib在Windows上的Python 2上扼杀了国际字符

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM