Python使用cron-job输出到文本文件

时间:2013-07-02 03:15:16

标签: python logging cron

我有一个python脚本,我想每5分钟运行一次,以检查服务器上的新文件。我知道我可以用cron-job做到这一点。但是在我的python脚本目录中,我有一个名为'logs'的文件夹。是否有一种方法可以输出我的python脚本返回的任何内容(每次至少返回20-30行)到日志文件夹中每5分钟一次的文本文件。我希望能够只搜索文件以查看每次运行的输出。所以根据我的计算,我每天应该得到大约288个日志文件。

另外我怀疑的是脚本显示了一些实时内容(比如下载进度条),那么会出现问题吗?

谢谢!

2 个答案:

答案 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