python - 将 python 脚本输出打印到文本文件和命令窗口

标签 python python-2.7 command-line cmd window

所以我知道如何执行 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/

相关文章:

python - 如何只打印给定记录器的日志消息?

python - 如何修复 SSL : CERTIFICATE_VERIFY_FAILED feedparser?

python-3.x - 从 Python 2 加载 Python 3 pickle

python - 将字符串从 Python3 转换为字典

maven - 如何从Maven传递Java代码参数进行测试

c - 如何在运行不同的 C 文件时从命令行调用可执行 C 文件?

python - 如何将多个网站页面的抓取结果保存到 CSV 文件中?

在线法官中来自 stdin 的 Python 输入

shell - 为 ubuntu 服务器上的所有用户执行命令的脚本

python 3.x语音模块