我有一个python脚本,我想每5分钟运行一次,以检查服务器上的新文件。我知道我可以用cron-job做到这一点。但是在我的python脚本目录中,我有一个名为'logs'的文件夹。是否有一种方法可以输出我的python脚本返回的任何内容(每次至少返回20-30行)到日志文件夹中每5分钟一次的文本文件。我希望能够只搜索文件以查看每次运行的输出。所以根据我的计算,我每天应该得到大约288个日志文件。
另外我怀疑的是脚本显示了一些实时内容(比如下载进度条),那么会出现问题吗?
谢谢!
答案 0 :(得分:2)
如果您希望标准输出转到文件,您可以像this那样执行此操作。
import sys
sys.stdout = open('file.txt', 'w')
当你的python脚本打印出来的东西时,它会转到file.txt
而不是stdout。
这是一个复制粘贴示例。
import sys
sys.stdout = open("file.txt", 'w')
for n in xrange(100):
print n
#I bet you can guess what you're going to see in file.txt
这将在名为file.txt
的文本文件中打印0-99,并且您的控制台上不会显示任何内容。
答案 1 :(得分:2)
如果您不想修改脚本本身,可以将输出重定向到带时间戳的文件:
./your/script.py > "your-log-file-"`date +"%Y-%m-%d-%H-%M-%S"`".log"
哪个会输出以下格式的文件:
your-log-file-2013-07-01-20-22-45.log