我写了一个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
巴扎黑2017-04-18 09:41:05
디렉터리와 관련이 있습니다. Windows에서 이 디렉터리에는 관리자 권한이 필요합니다. E:AC 디렉터리 등 다른 디렉터리로 이동하여 파일을 조작할 수 있습니다
天蓬老师2017-04-18 09:41:05
추가해 주세요.
UAC 가상화를 사용하고 싶지만 이는 Windows에서 권장하지 않는 방식입니다. UAC 가상화 실패의 이유와 해결 방법에 대한 질문입니다. 이전에는 가상화에 성공했지만 왜 실패했는지 모르겠습니다.
Windows에 권장되는 방법도 제공합니다. 다른 디렉터리에 파일을 만듭니다. os.getenv('ALLUSERSPROFILE')
또는 os.environ.get('ALLUSERSPROFILE')
을 사용하여 시스템 환경 변수를 가져온 다음 경로를 구성합니다. 관련 변수에는 LOCALAPPDATA
및 APPDATA
이 포함되며, 이는 서로 다른 디렉터리에 해당합니다. 아마도 적절한 방법을 사용하면 이 문제는 사라질 것입니다. C 드라이브나 다른 드라이브에 폴더를 만드는 것보다 시스템 변수를 얻어서 파일에 쓰는 것이 더 좋습니다. 다른 DEF 드라이브 문자가 없거나 시스템 드라이브 문자가 C 드라이브가 아닌 경우에는 어떻게 될까요? 프로그램을 완전하게 작성해서는 안 됩니다. Microsoft의 권장 사항과 모든 사람이 합의한 방식을 따르는 것이 가장 좋습니다. 마지막으로, 제가 질문한 내용은 기본적으로 스스로 묻고 답변한 내용이기 때문에 Segmentfault가 충분히 활성화되지 않은 것 같습니다. 다시 한 번 불평하겠습니다. 텍스트 편집기는 사용하기 쉽지 않습니다.
UAC 관련 링크