如何使用subprocesses.call并将一个输出传递给txt文件?

时间:2017-03-17 23:16:36

标签: python python-2.7 subprocess pipe

涉及其他脚本,因此我不知道如何用所有的tino来解决这个问题。

现在我有了这个命令,

 subprocess.call(['python2.7', 'cello_client.py', 'get_results',
                  '--jobid','pythonTest4', '--filename',
                  'pythonTest4_dnacompiler_output.txt','>','out.txt'])

支持将输出推送到文本文件out.txt,但它不会这样做。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

>是shell重定向命令,但您没有运行shell。您可以执行shell执行的操作:打开文件并将其作为程序的stdout附加。

subprocess.call(['python2.7', 'cello_client.py', 'get_results',
    '--jobid','pythonTest4', '--filename',
    'pythonTest4_dnacompiler_output.txt'],
    stdout=open('out.txt', 'wb'))

您可以使用不同的子进程命令将stdout直接读入内存:

proc = subprocess.Popen(['python2.7', 'cello_client.py', 'get_results',
    '--jobid','pythonTest4', '--filename',
    'pythonTest4_dnacompiler_output.txt'])
out_text, err_text = proc.communicate()
return_code = proc.returncode