python 文件读写 权限 permission denied

我写了一个python小工具,安装在C:\Program Files (x86)\appname目录下,可是无法创建和读写文件,出现permissiondenied" title="permission denied">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

回答:

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

回答:

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

UAC相关链接

回答:

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

以上是 python 文件读写 权限 permission denied 的全部内容, 来源链接: utcz.com/a/157711.html

回到顶部