很多时候,由于各种原因,运行很多天代码的错误信息没有保存,导致又要重新跑代码,为了随时记录错误信息,可以利用subprocess模块实现。代码如下
import subprocess
def save_terminal_output(command, output_file):
with open(output_file, 'w') as f:
try:
# 运行命令并捕获输出
output = subprocess.check_output(command, stderr=subprocess.STDOUT, shell=True, universal_newlines=True)
# 将输出写入文件
f.write(output)
except subprocess.CalledProcessError as e:
# 如果命令返回非零状态码,将错误信息写入文件
f.write(e.output)
# 调用示例
command = 'python train.py' # 替换为你要运行的命令
output_file = 'C:/Users/Desktop/Safe-RL/log/log.txt' # 替换为输出文件的路径和名称
save_terminal_output(command, output_file)