0

線が出る理由はありますか

out = open("tmp.gp",'w')
out.write('plot sin(x)')
out.close
system('gnuplot -persist tmp.gp')

動作しませんが、これら(以下)は動作しますか?

system('gnuplot -persist tmp.gp')
out = open("tmp.gp",'w')
out.write('plot sin(x)')
out.close

プログラム中にtmp.gpを削除しないことに注意してください。どちらの場合も、ファイルが存在し、これらの行のいずれかが実行される前にコマンド'plot sin(x)'が含まれています(ファイルは前回の実行から存在するため)?

私の唯一の推測は、これは競合状態である可能性があるということでしたが、raw_input()を入れて時間をつぶしても効果はありませんでした(以下を参照)。助けてくれてありがとう!

out = open("tmp.gp",'w')
out.write('plot sin(x)')
out.close
raw_input()
system('gnuplot -persist tmp.gp')
4

2 に答える 2

3

これは、実際にclose関数を呼び出していないためです。に変更out.closeしてout.close()ください。関数呼び出しを呼び出すには、が必要です()

于 2013-02-01T01:51:01.043 に答える
1

他の人が言ったように、あなたはclose()を適切に使用しませんでした。また、ステートメントで使用する必要があるファイルでの作業では、次のようになります。

with open("tmp.gp",'w') as out:
    out.write('plot sin(x)')
    out.close()

このように、自分でファイルを閉じない場合や、ファイルに書き込むとエラーが発生する場合でも、ファイルは閉じられます。

于 2013-02-01T04:26:12.877 に答える