2

サーバー上の新しいファイルをチェックするために 5 分ごとに実行したい Python スクリプトがあります。私はcron-jobでそれを行うことができることを知っています. しかし、私のpythonスクリプトのディレクトリには、「logs」というフォルダがあります。私のpythonスクリプトが返したもの(毎回少なくとも20〜30行を返す)をログフォルダーに5分ごとにテキストファイルに出力できる方法はありますか?ファイルを検索して、各実行の出力を確認できるようにしたいと考えています。したがって、私の計算によると、1 日あたり約 288 個のログ ファイルを取得する必要があります。

また、私が持っていたもう1つの疑問は、スクリプトがライブのもの(ダウンロードの進行状況バーなど)を表示していることです。それで問題はありますか?

ありがとう!

4

2 に答える 2

3

スクリプト自体を変更したくない場合は、出力をタイムスタンプ付きのファイルにリダイレクトできます。

./your/script.py > "your-log-file-"`date +"%Y-%m-%d-%H-%M-%S"`".log"

次の形式のファイルを出力します。

your-log-file-2013-07-01-20-22-45.log

于 2013-07-02T03:27:44.663 に答える
2

標準出力をファイルに出力したい場合は、次のように実行できます

import sys
sys.stdout = open('file.txt', 'w')

そうすれば、Pythonスクリプトが出力するものfile.txtを標準出力の代わりに出力します。

以下はコピペの例です。

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

これにより、0-99 というテキスト ファイルが出力file.txtされ、コンソールには何も表示されません。

于 2013-07-02T03:19:30.303 に答える