0

この BASH 式を置き換えたい:

expr $COUNT + 1 > $COUNT_FILE

Python で同等のものを使用します。私はこれを思いついた:

subprocess.call("expr " + str(int(COUNT)+1) + " > " + COUNT_FILE, shell=True)

または(おそらく少し良い):

 subprocess.call("echo " + str(int(COUNT)+1) + " > " + COUNT_FILE, shell=True)

これを行うより良い方法はありますか?

あなたの入力に基づいて:

def out_to_file(out_string, file_name, append='w'):
    with open(file_name, append) as f:
        f.write(out_string+'\n')
4

4 に答える 4

5
with open(COUNT_FILE, 'w') as f:
    f.write(str(int(COUNT)+1)+'\n')
于 2013-08-22T20:21:30.080 に答える
3

シェルではなく、python を使用してファイルを書き込みます。コードは bash 式を置き換えていません。まだ bash で実行しています...

代わりに試してください:

with open(COUNT_FILE, 'w') as f:
    f.write(str(int(COUNT) + 1) + "\n")

    # or python 2:
    # print >> f, int(COUNT) + 1

    # python 3
    # print(int(COUNT) + 1, file=f)

withブロックが終了すると、ファイルは自動的に閉じられます。

于 2013-08-22T20:21:41.703 に答える
2

シェルを使用せず、Python の I/O 関数を使用してファイルに直接書き込みます。

with open(count_file, 'w') as f:
    f.write(str(count + 1) + '\n')

このwithステートメントは後でファイルを閉じる処理を行うため、より安全です。

于 2013-08-22T20:21:53.310 に答える