我写了一个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
これはディレクトリに関係しています。Windows のこのディレクトリでは、ファイルを操作するために E:AC ディレクトリなどの他のディレクトリに移動できます。
少し付け加えさせてください。
UAC 仮想化を使用したいと考えていますが、これは Windows が推奨しているものではありません。質問は、UAC 仮想化の失敗の理由と解決策について尋ねます。以前は仮想化に成功していましたが、なぜ失敗したのかわかりません。
Windows で推奨される方法も示します。他のディレクトリにファイルを作成します。
os.getenv('ALLUSERSPROFILE')
またはos.environ.get('ALLUSERSPROFILE')
を使用してシステム環境変数を取得し、パスを構築します。関連する変数には、異なるディレクトリに対応するLOCALAPPDATA
とAPPDATA
が含まれます。おそらく適切な方法を使えば、この問題は解消されるでしょう。 C ドライブや他のドライブにフォルダーを作成するのではなく、システム変数を取得してファイルに書き込む方がよいでしょう。他の DEF ドライブ文字がない場合、またはシステム ドライブ文字が C ドライブではない場合はどうすればよいでしょうか。プログラムは死ぬほど書き込むべきではありません。Microsoft の提案と全員が合意した慣行に従うのが最善です。最後に、segmentfault が十分にアクティブではないことを嘆きますが、私が尋ねた質問は基本的に自分自身で尋ね、回答するものです。もう一度文句を言いますが、テキストエディタは使いにくいです。UAC 関連リンク
このディレクトリにファイルを作成する必要がある場合は、必要に応じてフォルダーに書き込み権限を付与します。