我有一个运行Python脚本的批处理文件。该脚本模拟每5秒一次打印3行的数据。下面是我的简单代码。
while True:
print("Some Data")
print("More Data")
print("Some More Data")
time.sleep(5)
因此,在运行批处理文件时,每5秒以cmd打印这3行。有没有办法让我每5秒将这些日志记录到一个.txt文件中?
答案 0 :(得分:0)
我是否可以每5秒将这些日志记录到一个.txt文件中?
是的。实际上,有两种半。
首先,您可以修改Python脚本以写入文本文件而不是stdout:
with open('logfile.txt', 'w') as f:
while True:
print("Some Data", file=f)
print("More Data", file=f)
print("Some More Data", file=f)
time.sleep(5)
或者,如果您希望能够传递一个文件名而不是对logfile.txt
进行硬编码:
import sys
filnename = sys.argv[1]
with open(filename, 'w') as f:
while True:
print("Some Data", file=f)
print("More Data", file=f)
print("Some More Data", file=f)
time.sleep(5)
现在您的批处理文件将执行此操作:
py myscript.py logfile.txt
当然,在这两种情况下,您都不必对file=
使用print
参数;如果您需要对文件进行更多控制,则可以直接使用f.write("Some Data\n")
,也可以使用the logging
module神奇地进行更高级的日志记录(例如,使用自动时间戳记)。
或者,您可以不使用Python脚本,而是修改批处理文件以使用shell redirection:
py myscript.py >logfile.txt