windows - python 文件读写 权限 permission denied
伊谢尔伦
伊谢尔伦 2017-04-18 09:39:05
0
3
3815

我写了一个python小工具,安装在C:\Program Files (x86)\appname目录下,可是无法创建和读写文件,出现permission denied错误提示。
之前程序是可以在C:\Users\XXX\AppData\Local\VirtualStore\Program Files (x86)创建文件的,因为改了一大堆东西,而且代码也很长,就不贴代码了。
如何做才能在C:\Users\XXX\AppData\Local\VirtualStore\Program Files (x86)\appname创建文件,不关闭UAC,不使用管理员权限。

就像这样的代码:

# -*- coding: utf-8 -*-
with open("a.txt","w")as f:
    pass

操作系统:windows 10 专业版 1607 开启UAC

python 2.7.11

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

Antworte allen(3)
巴扎黑

跟目录有关系,windows下这个目录需要管理员权限,可以去其他目录比如E:\AC目录下操作文件

Peter_Zhu

补充一下吧。
我希望使用的是UAC虚拟化,但是是windows不提倡的一种做法。问题问的是UAC虚拟化失败的原因和处理方法。我之前是可以虚拟化成功的,不知道为什么失败了。
另外给出windows推荐的方式。把文件创建在其他目录下。用os.getenv('ALLUSERSPROFILE')或者os.environ.get('ALLUSERSPROFILE')获取系统环境变量,然后构造路径。相关的变量还有LOCALAPPDATAAPPDATA分别对应不同的目录。或许用合适的方式,这问题也就不存在了。还是获取系统变量写入文件比较好,而不是在C盘或者其他盘创建文件夹,万一没有其他DEF盘符呢,或者系统盘符不是C盘呢?程序不应该写死了,最好按照微软的建议和大家约定的做法去做。最后感慨一下,segmentfault还不够活跃,我提的问题基本是自问自答。再吐槽一下,文本编辑器不好用。

UAC相关链接

Ty80

可以对目录权限做划分,如果一定要在这个目录下建文件,就给这个文件夹可写权限,继承权限就看你需求了

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage