所以我有一个python脚本将文本输出到控制台,我需要将其记录到文件中,但脚本非常复杂,我不会编写python代码,所以我宁愿不改变它。 / p>
我想这样做
>python script.py arg1 arg2 ... argn > "somefile.txt"
但它不会起作用,我的猜测是python将>
和"somefile.txt"
作为参数。
这可以实现吗?
答案 0 :(得分:5)
$ (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 :(得分:0)
将这些代码行添加到python文件的开头。
import sys
sys.stdout = open('somefile.txt', 'w')
这是将sys.stdout设置为您选择的文件对象。
答案 2 :(得分:0)
由于脚本不是你的,我猜测它使用了 python 日志模块。如果是这种情况,那么您只需要重新配置日志记录模块以使用 stdout。请参阅 https://stackoverflow.com/a/28194953/292787 了解如何操作。
import logging
import sys
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)