python 文件读写 权限 permission denied

我写了一个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

阅读 55.3k
3 个回答

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

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

UAC相关链接

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏