2011-08-16 8 views
0

私はスクリプトとして必要な間に、スタンドアロンとして動作するときにのみうまく動作するpythonスクリプトを持っています。それは、このような方法で、外部の.exeのコンパイルされたCライブラリを使用しています:私は、スタンドアローンとしてそれを実行したときにPythonでアプリケーションアドオンのフォルダ書き込み権限を設定するには

# trigger the shell command 

import subprocess 
p = subprocess.Popen('qvoronoi TI data.txt TO results.txt p FN Fv QJ', shell=True) 
p.wait() 

# open the results file and parse results 
results = open('results.txt','r') 

それはすべての権利に動作します。

しかし私のプログラムは、別のアプリケーション(PTV Visum:http://www.ptvag.com/software/transportation-planning-traffic-engineering/software-system-solutions/visum/)の内部から動作するスクリプトでなければなりません。

私はそこからスクリプトとして実行すると、ファイル(results.txt)を書き込む権限を取得できないようです。エラーメッセージ:

IOError: [Errno 2] No such file or directory: 'results.txt' 

どうすれば解決できますか?

PS。 os.chmodでフォルダのアクセス許可を変更しようとしましたが、それは助けになりませんでした。

+0

@agfあなたは正しいです。とにかく奇妙なことに、私がスタンドアロンの 'os.getcwd()'として実行すると、プロセス全体を通して適切でした。しかし、私がスクリプトとして使用したときに、 'os.getcwd()'は私がそれを知り、異なる時に最初のもので適切なものでした...とにかく私は '' os.chdir(good_cwd) 'を使いました。 –

答えて

1

Try print os.getcwd()

現在の作業ディレクトリは、results.txtが作成されているディレクトリではありません。

IOErrorは、results.txtを検索する場所を指定していないため、ファイルを読み込んだ行に書き込んでいません。

関連する問題