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

时间:2017-05-11 11:54:29

标签: python python-3.5

我正在尝试处理在文件夹中创建的一些文件,但有时,在打开文件时,python会返回给我[Errno 13]:权限被拒绝。

我只是在做

file = open(file_path, 'rb')

最奇怪的是大多数时候文件正​​确打开并且错误与某些特定文件无关(多次测试)。 我已经尝试更改file_path格式但没有效果。

我正在使用python 3.5和watchdog lib来查看文件创建事件的目录,然后我获取事件的src_path并打开它。此外,在Windows 10上运行。

3 个答案:

答案 0 :(得分:1)

所以,看起来代码中的问题有点过时了。正如我所提到的,我使用watchdog lib来检测文件创建,在那种情况下我打开了创建的文件。问题是,当文件完成移动/粘贴/创建时,文件创建事件不会发生,但是当前几个字节到达目录时。所以问题是我试图在"创建"之前打开文件。过程完成了,所以它仍然在写。

我搜索了一种获得完成写入事件的方法,但是看门狗lib没有这个功能,看起来完成的写入事件只是linux的特性。

所以现在我等待一段时间才通过计时器线程打开文件,它似乎工作得很好,因为我不需要对新文件立即采取行动,也不需要处理大文件。

答案 1 :(得分:0)

我也遇到了同样的错误“权限被拒绝”,但是如果您在创建事件后等待大约2秒钟,然后读取文件,它将得到解决。

答案 2 :(得分:0)

您可以添加下面的截图以等待操作完成。

init_size = -1
while True:
    current_size = os.path.getsize(event.src_path)
    if current_size == init_size:
        break
    else:
        init_size = os.path.getsize(event.src_path)
        time.sleep(2)
print("file copy has now finished")