繁体   English   中英

无法打开 os.listdir 返回的文件

[英]Unable to open files returned by os.listdir

我有一些这样的代码:

import os
directory = 'H:\\path\\to\\files'
for file in os.listdir( directory ):
  open( os.path.join( directory, file ) )

在极少数情况下,在目录上运行此代码会引发以下错误。

IOError: [Errno 2] No such file or directory: 'H:\\path\\to\\files\\blahblah.file'

目录中的每个文件都不会发生这种情况 - 前几个文件正确打开,但随后它会在其中一个文件上失败,每次都相同。

有问题的文件确实存在,所以这是open而不是os.listdir的问题。

奇怪的是,将工作目录和将directory更改为相应的相对路径会影响我们在哪个文件上失败。

我在 Windows 10 上运行 Python 2.7。

更新它似乎与文件名的长度有关。 文件名通常很长:如果我将文件重命名为更短的名称,那么它会成功; 更长的时间,它再次失败。 这可以解释为什么我们在使用更长的相对路径时会在不同的点上失败。

这似乎是由 260 个字符的路径长度限制引起的。 失败的文件的路径长度超过 260 个字符。

暂无
暂无

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

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