所以我知道如何执行 python 脚本并使用 os.command 甚至子进程在命令窗口中输出它。我还知道将输出捕获到文本文件中是通过 os.command('my command > me.txt".
我的问题是: 有没有一种方法可以用一个命令来完成这两个任务?即执行 python 脚本,将输出捕获到文本文件并将其显示在命令窗口上?
如果这是不可能的,这里还有另一个问题: 我想要执行的命令最多需要 8 分钟才能完成,并在文本文件中写入最多 300 行。我可以在命令仍在执行时访问文本文件以便获取一些数据,而无需等待命令完成执行吗?例如每 1 分钟访问一次文本文件?
如果两者都不可能,那么这也可以完成这项工作: 当我的命令成功执行时,它会在 cmd 上打印出 Done 语句以及许多其他行。我可以在 cmd 中检查是否打印了“Done”字符串,或者是否需要将其捕获在文本文件中才能进行搜索?
最佳答案
保存命令输出同时将其回显到 stdout 的最简单方法是使用 tee
:
$ python script.py | tee logfile.log
如果您想在写入文件时跟踪文件的输出,请使用tail
:
$ tail -f logfile
您可能希望立即取消缓冲
或刷新
输出,以便能够在整行或缓冲区填满之前读取输出:
$ unbuffer python script.py > logfile
$ tail -f logfile
或
print ("to file..", flush = True)
关于python - 将 python 脚本输出打印到文本文件和命令窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24089614/