在Python中如何将命令的输出写入文件

时间:2019-03-09 15:07:51

标签: python

我想编写一个Python脚本,该脚本应一个接一个地执行多个命令,并且输出应以追加模式保存到文件中。我尝试编写脚本,它适用于单个命令,但如何编写多个命令。

import subprocess
with open(filename, "a") as output:
    subprocess.Popen('cmd1''cmd2''cmd3', shell=True, stdout=output)  

例如:

cmd1 = dir
cmd2 = whoami

文件应包含两个命令的输出。

3 个答案:

答案 0 :(得分:1)

怎么样

import subprocess
commands = ['ls','pwd']
with open('cmd_out.txt', "a") as output:
    subprocess.Popen(';'.join(commands), shell=True, stdout=output)

答案 1 :(得分:0)

Popen执行单个命令;在您的示例中,您实际上是在执行dir并将其whoami作为参数传递。

因此,您需要分别为每个命令调用Popen。将每个追加都添加到同一个文件应该会产生所需的结果。

答案 2 :(得分:0)

;分隔命令:

subprocess.Popen('cmd1; cmd2; cmd3', shell=True, stdout=output)