在Python中,可以使用子进程来保存Python文件的输出并将所有输出附加到一个文件中。下面是一种实现方法:
import subprocess
def save_output_to_file(file_path, command):
with open(file_path, 'a') as file:
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
while True:
output = process.stdout.readline()
if output == b'' and process.poll() is not None:
break
if output:
file.write(output.decode('utf-8'))
file.flush()
# 示例用法
save_output_to_file('output.txt', 'python your_script.py')
上述代码中,save_output_to_file
函数接受两个参数:file_path
表示要保存输出的文件路径,command
表示要执行的Python脚本命令。
在函数内部,我们使用subprocess.Popen
创建一个子进程来执行指定的命令。通过设置stdout=subprocess.PIPE
和stderr=subprocess.STDOUT
,我们将子进程的标准输出和标准错误输出合并为一个流,并通过shell=True
参数来执行命令。
然后,我们使用一个循环来读取子进程的输出。每次读取一行输出后,我们将其写入到指定的文件中,并使用file.flush()
来确保立即写入文件。
最后,我们通过调用save_output_to_file
函数并传入要保存输出的文件路径和要执行的Python脚本命令来实现保存输出并附加到文件的功能。
这种方法可以适用于保存任何Python脚本的输出,并将其附加到指定文件中。
领取专属 10元无门槛券
手把手带您无忧上云