我有一个运行Python脚本的批处理文件。此脚本模拟每5秒一次打印3行的数据。下面是我拥有的简单代码。
while True:
print("Some Data")
print("More Data")
print("Some More Data")
time.sleep(5)
因此,当运行批处理文件时,这3行在cmd中每5秒打印一次。有没有办法让我每隔5秒就把这些记录到一个.txt文件中?
发布于 2018-07-05 06:39:02
有没有办法让我每隔5秒就把这些记录到一个.txt文件中?
是。事实上,是两种半的方式。
首先,您可以修改Python脚本以写入文本文件,而不是标准输出:
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
当然,在这两种情况下,您不必对print
使用file=
参数;如果您需要对文件进行更多控制,则可以直接使用f.write("Some Data\n")
,或者使用the logging
module来神奇地执行更出色的日志记录(例如,使用自动时间戳)。
或者,您可以不使用Python脚本,而是修改批处理文件以使用shell redirection
py myscript.py >logfile.txt
https://stackoverflow.com/questions/51181411
复制相似问题