STDOUT
を既存のsubprocess.call()
ファイルに追加したい。以下の私のコードはファイルを上書きします -
log_file = open(log_file_path, 'r+')
cmd = r'echo "some info for the log file"'
subprocess.call(cmd, shell=True, stdout=log_file, stderr=STDOUT)
log_file.close()
>>
insubprocess.call()
またはに相当するものを探していsubprocess.Popen()
ます。それを見つけようとして私を夢中にさせています..
アップデート:
これまでの回答に従って、コードを次のように更新しました
import subprocess
log_file = open('test_log_file.log', 'a+')
cmd = r'echo "some info for the log file\n"'
subprocess.call(cmd, shell=True, stdout=log_file, stderr=subprocess.STDOUT)
log_file.close()
Windowsのコマンドラインからこのコードを実行しています-
C:\users\aidan>test_subprocess.py
これにより、テキストがログ ファイルに追加されます。スクリプトを再度実行すると、新しいものは何も追加されません。まだファイルを上書きしているようです..