当文件名较长时,Python的os.walk()在Windows中失败

我使用python os.walk()获取某些目录中的文件和目录,但是有些文件的名称太长(> 300),os.walk()不返回任何内容,使用onerror我得到了“ [错误234]更多数据可用’.我尝试使用yield,但一无所获,并显示“ Traceback:StopIteration”.

OS是Windows,代码很简单.我已经用目录测试过,如果有长文件名,就会出现问题,而如果用短名重命名长文件,代码会得到正确的结果.

我无法对这些目录执行任何操作,例如重命名或移动长名称文件.
请帮我解决问题!

def t(a):
  for root,dirs,files in os.walk(a): 
    print root,dirs,files
t('c:/test/1') 

解决方法:

在Windows中,文件名(包括路径)不能超过255个字符,因此,您看到的错误是Windows而不是Python产生的-因为您设法创建了这么大的文件名,但是现在您无法读取它们.有关更多详细信息,请参见此post.

上一篇:javascript-如何使用文件名导出csv文件


下一篇:python-正则表达式匹配字符串中年份的最后一次出现