我正在尝试记录通过命令提示符传递的所有内容。这包括由python脚本启动的批处理脚本输出。
如果我这样运行python文件
python logEverything.py >> logFile.txt
它给了我我想要的东西,并且命令提示符中打印的所有内容都将放入该文件中。
此问题是命令提示符下不再显示任何内容。另外,我希望能够在程序内部指定日志文件路径。
有没有办法记录通过命令提示符利用Python 传递的所有信息?兼容Windows和Linux吗?
所以logEverything.py就是这样
import sys
def main():
import io
old_stdout = sys.stdout # Memorize the default stdout stream
sys.stdout = buffer = io.StringIO()
print('Log test')
os.system('this is a test')
print('More logging')
#Finished -> put everything into log_file.txt
sys.stdout = old_stdout
whatWasPrinted = buffer.getvalue()
print(whatWasPrinted) # Why not to print it?
buffer.close()
此解决方案部分有效,但无法捕获os.system()的输出
答案 0 :(得分:0)
来自Askubuntu上的this问题:
git
标准输出流和标准错误流都将被复制到文件中,同时仍在终端中可见。如果文件已经存在,则新数据将附加到文件末尾。
因此您可以使用command |& tee -a output.txt