Python [Errno 13] 打开某些图像时权限被拒绝

标签 python python-3.5

我正在尝试处理在文件夹中创建的一些文件,但有时,打开文件时,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/

相关文章:

python - 为什么导入无法解决?

python - 是什么魔法阻止了 Tkinter 程序在交互式 shell 中阻塞?

python - 编写一个自定义 Django BaseCommand 类来记录命令详细信息

python - 代码不会停止运行。看起来微不足道,但我无法弄清楚

python-3.x - asyncio 中的合作 yield

python - 在字典中查找最大值的基本方法

python - 一个Python脚本,可以自动在网站中输入一些文本并获取其源代码

python - 当 te coro 在 sleep 超时之前完成时,如何清理 coro 中的 asyncio.sleep()

python - 按值将 Python 3 字典排序回字典而不是元组列表

django - 扩展 django 用户 django-rest_framework 给我 KeyError