我正在尝试处理在文件夹中创建的一些文件,但有时,打开文件时,python 会返回[Errno 13]:权限被拒绝。
我只是在做
file = open(file_path, 'rb')
最奇怪的是,大多数时候文件都能正确打开,并且错误与某些特定文件无关(测试了几次)。 我已经尝试更改 file_path 格式,但没有效果。
我使用 python 3.5 和 watchdog lib 来监视文件创建事件的目录,然后获取事件的 src_path 并将其打开。另外,在 Windows 10 上运行。
最佳答案
所以,看起来问题出在代码中。正如我所提到的,我使用看门狗库来检测文件创建,在这种情况下,我打开了创建的文件。问题是,文件创建事件不会在文件完成移动/粘贴/创建时发生,而是在前几个字节到达目录时发生。所以问题是我试图在“创建”过程完成之前打开该文件,因此它仍在写入中。
我搜索了一种获取写完成事件的方法,但是watchdog lib没有这个功能,而且写完成事件似乎是linux独有的功能。
所以现在我在通过计时器线程打开文件之前等待一段时间,它似乎工作得很好,因为我不需要对新文件立即执行操作,也不需要处理大文件。
关于Python [Errno 13] 打开某些图像时权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43914690/