2017-08-04 181 views
2

因此,我有一个python脚本输出文本到控制台,我需要记录到一个文件,而脚本是相当复杂的,我不编码python,所以我宁愿不改变它。如何将python脚本cmd输出重定向到文件?

我想这样做

>python script.py arg1 arg2 ... argn > "somefile.txt" 

但它不会工作,我的猜测是,蟒蛇需要>"somefile.txt"作为参数..

才能实现这一目标,以及如何?

+1

你的猜测是错误的。它以什么方式不起作用?你看到了什么? – immortal

+0

我在控制台中看到输出,并且没有创建文件。 –

+0

什么外壳?你的脚本如何打印输出? – immortal

回答

3

$ (python script.py one two) > test.txt

或者,如果你想看到的输出,并把它写入一个文件:

$ python script.py one two | tee test.txt

如果仍然没有写入文件,请尝试重新定向STDERR

$ python script.py one two 2>&1 | tee test.txt

+1

尝试使用括号创建文件,并且文件被创建,但输出未重定向且文件保持空白。对不起,但我不明白你的语法其余..通过'$'你暗示Linux bash?因为我在谈论Windows命令提示符 –

+0

是的,得到了​​''tee'不被识别为内部或外部命令...“ –

+0

@GarinGG,Windows没有与'tee'命令一起分发。你可以安装一个,但你并没有问过这个问题。只需通过'> somefile.txt'重定向stdout,然后通过'2>&1'将stderr重定向到stdout(即同一个文件)。 – eryksun

0

将这些代码行添加到轧制python文件。

import sys 
sys.stdout = open('somefile.txt', 'w') 

这是将sys.stdout设置为您选择的文件对象。

相关问题