1

給与明細情報を追跡するプログラムを作成しています。ターミナル経由でソースコードから実行すると正常に動作し、ファイルを正しく保存します。クライアントに配布するために、PyInstaller を使用してコードをコンパイルし、Windows 7 で配布する 1 ファイルの .exe を作成し、Advanced Installer 11.4.1 を使用して .msi ファイルを作成し、クライアントがプラットフォームにインストールできるようにしました。

私の問題は、.msi をインストールした後にアプリケーションを実行するときです。パッケージで、ロードおよび保存するデータを含む .txt ファイルを配布しました。

配布したファイルを更新しようとすると、次のエラーが発生します。

IOError: [Errno 13] 許可が拒否されました: 'testSave.txt'

ファイルを保存しようとするために使用しているコードは次のとおりです。

saving = open(file_name, 'w')
saving.write(data)

Python 2.7 に権限に関係なく書き込むように指示する方法、またはインストール時にこの特定のファイルに基本的なユーザー権限を持たせる方法はありますか?

ありがとう。

4

2 に答える 2

1

システム環境を使用して別の場所に書き込むようにプログラムを変更し、Advanced Installer に Local App Data ディレクトリに .txt をインストールするように指示しました。これにより、「rw」権限でファイルを開くことができました。

path = os.environ.get('LOCALAPPDATA')
path = path.split('\\')
real_path = ''
print path
for dir in path:
    real_path += dir + '/'
print real_path
real_path = os.path.normpath(real_path + 'PayTrakker/testSave.txt')
于 2014-09-02T07:46:55.733 に答える