在Python中保存文件的权限

时间:2017-09-15 11:13:22

标签: python image file permissions

此代码

from PIL import ImageGrab, Image
im = ImageGrab.grab()
im.save(r'D:/MyFilesForProject/Network/screen.jpg')

导致此错误

Traceback (most recent call last):
  File "G:/PycharmProjects/2.7NetworkExersice/Screenshot.py", line 4, in 
<module>
im.save(r'D:\MyFilesForProject\Network\screen.jpg')
File "C:\Python27\lib\site-packages\PIL\Image.py", line 1676, in save
fp = builtins.open(fp, "wb")
IOError: [Errno 13] Permission denied: 
'D:\\MyFilesForProject\\Network\\screen.jpg'

我试图在整个互联网上找到解决方案,但我找不到任何有效的方法。为了避免重复的建议:是的,我允许在属性中读取和写入文件夹并尝试将其保存在其他地方。我真的希望得到你的帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

Python是一个问题,它具有写入该驱动器的权限。

尝试以管理员身份运行Python:

从命令行:

runas.exe /user:administrator "C:\Python27\python.exe Screenshot.py"

我设法通过尝试保存到没有写入权限的文件夹来复制错误。

这是我修复错误的方法:

  1. 右键单击要保存到的文件夹。

  2. 点击列表底部的properties

  3. 转到security标签

  4. 点击Edit

  5. 旁边的To change permissions, click Edit按钮
  6. 确保write部分在您登录的用户的Allow列中打勾。如果这不是私人文件夹或安全风险,您可以允许everyone

  7. 我注意到的另一件事是我从更新的修复中得到了错误

     File "C:\Anaconda3\lib\site-packages\PIL\Image.py", line 1725, in save
    fp = builtins.open(filename, "w+b")
    

    请注意w+b,而在您的追溯中,您有wb

    这可能是由于使用了过时版本的PIL ..

    尝试通过PIP卸载PIL,然后使用

    重新安装最新版本
    pip install pil
    

    另一个不同之处在于我在Python 3.6上运行它而非像你自己一样。