我写了一个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
Cela a quelque chose à voir avec le répertoire. Ce répertoire sous Windows nécessite des droits d'administrateur. Vous pouvez accéder à d'autres répertoires comme le répertoire E:AC pour exploiter les fichiers
.Veuillez ajouter quelque chose.
J'espère utiliser la virtualisation UAC, mais c'est une pratique que Windows ne préconise pas. La question porte sur les raisons et les solutions à l'échec de la virtualisation UAC. J'ai déjà réussi à virtualiser avec succès, mais je ne sais pas pourquoi cela a échoué.
Donne également la méthode recommandée pour Windows. Créez des fichiers dans d'autres répertoires. Utilisez
os.getenv('ALLUSERSPROFILE')
ouos.environ.get('ALLUSERSPROFILE')
pour obtenir les variables d'environnement système, puis construisez le chemin. Les variables associées incluentLOCALAPPDATA
etAPPDATA
, qui correspondent à différents répertoires. Peut-être qu’avec une méthode appropriée, ce problème disparaîtra. Il est préférable d'obtenir les variables système et de les écrire dans des fichiers au lieu de créer des dossiers sur le lecteur C ou sur d'autres lecteurs. Que se passe-t-il s'il n'y a pas d'autre lettre de lecteur DEF ou si la lettre de lecteur système n'est pas le lecteur C ? Le programme ne doit pas être écrit à mort. Il est préférable de suivre les suggestions de Microsoft et les pratiques convenues par chacun. Enfin, je déplore que segmentfault ne soit pas assez actif. Les questions que j'ai posées sont essentiellement posées et répondues. Je me plains encore, l'éditeur de texte n'est pas simple à utiliser.Liens relatifs à l'UAC
Vous pouvez diviser les autorisations de répertoire. Si vous devez créer des fichiers dans ce répertoire, accordez à ce dossier des autorisations d'écriture. L'héritage des autorisations dépend de vos besoins
.