微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WindowsError使用os.listdir和os.stat的结果

我有下面的代码片段,获取文件的时间戳。

files_list = os.listdir(os.path.join(path,folder)) for files in files_list: stats = os.stat(os.path.join(path,folder,files))

是否有可能让我得到下面的错误,因为它似乎违反直觉,它不能够find一个文件,它刚刚在listdir中,除了竞争条件的情况下,这是不是我怀疑在这种情况下。

WindowsError: [Error 2] The system cannot find the file specified: '\\sftp-server.domain.com\homes\server\location\FOLDER\FILE.PDF'

我也想知道,如域名查找/临时networking问题可以导致这个错误? 例如

\sftp-server.domain\homes\server\location\FOLDER和

在Python中启动Windows运行命令(浏览器协议)

如何自动运行chrome可执行文件

如何在Windows下自动运行python脚本?

将窗口带到前台的问题

用于replacebatch file中的延迟扩展variables

\sftp-server.domain\homes\server\location\FOLDERFILE

只是URLstring,与真正的文件系统遍历没有任何关系。

Linux Mint Tkinter透明窗口

Python脚本转换为可以自动更新的独立单个文件可执行文件

AAPT2编译失败:Windows上的Android 3.0 Canary 1无效

从系统启动连续运行一个python脚本

在ie6上testing代码而不安装它?

据推测FOLDER和FILE不是真正的名字? 仔细看一下WindowsError报告的文件名。 如果它们在最后一个组件中包含问号,则说明Unicode文件名有问题。 具体来说,如果目录包含Unicode字符在当前代码页中不可表示的文件名(例如西欧或东欧语言环境中的日语字符),则os.listdir将返回具有不可表示的Unicode字符的文件名,并将其转换为? 。 很显然,这些基本上是坏的名字不能被传递给IO函数,比如open或者os.stat 。

解决这个问题,请通过将目录作为Unicode字符串传递给os.listdir来请求Unicode文件名。 这些将包含正确的字符,并可以传递给os.stat ,这将内部调用广泛的API:

dirname = unicode(os.path.join(path,folder),'mbcs') file_list = os.listdir(dirname) for filename in file_list: stats = os.stat(os.path.join(dirname,filename)) # ...

服务器正在做多线程,我们发送多个Ajax请求在一个单一的Javascript方法到相同的文件夹资源。

在os.listdir处理的情况下,首先会发生此错误,因为它需要很长时间才能通过SFTP执行。 在此期间, os.remove发生在另一个请求中,并删除了os.listdir结果中显示文件。 使他作为一个适当的回调os.listdir函数后,它工作得很好。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐