我使用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.