2011-10-26 7 views
0

私は非常にPythonには新しく、自分自身を拡張しています。 私は、cURLを使用してTwitterからJSON入力ストリームをポーリングし、それをCSVファイルに変換するスクリプトを一緒にハッキングしました。出力ファイルが作成されていない背景でpythonスクリプトを実行しています

スクリプトはフォアグラウンドで$プロンプトで実行すると完全に動作しますが、nohupを使用してバックグラウンドで実行すると、0バイトのファイルを作成するだけで、CSVヘッダーは書き込まれません。

ここでは、コードスニペットです:

import pycurl, json, csv 
from datetime import * 

outfile_path='/home/XXXX/twitter-feed.csv' 
writer = csv.writer(open(outfile_path, 'wb')) 

headers = ["user","timestamp","X","Y"] 
writer.writerow(headers) 

私はこれが修正する疑いの余地なく明らかである推測しているが、任意のヘルプは本当にいただければ幸いです。

+0

スクリプトをどのように起動しますか?コマンドラインplsを表示します。 – hochl

+0

"/full_path/myscript.py"と "nohup /full_path/myscript.py"の両方を試しました – Adrian

答えて

0

バックグラウンドでスクリプトをどのように起動しますか? python script.py &で実行していない場合は、パスに問題があると推測します。また、確認してください

chmod +x script.py

/full/path/to/script.py

でそれを実行して、ファイルを実行可能にし、スクリプトファイルの最初の行に

#!/usr/bin/python

を追加してみてくださいそのpycurlは環境の中でpython's pathです彼はスクリプトが走っています。

何も助けない(あるいはしようとする前に)すなわち、(それは「クラッシュ」場合、それはトレースバックを表示します)、スクリプトの出力をキャプチャしようとした場合:/full/path/to/script.py > /home/xxx/output.log 2>&1

+0

ありがとう!私はスクリプト/ chmodの提案をカバーしており、リダイレクト出力は出力を生成しません。 – Adrian

+0

出力がない場合、pycurlはおそらくpythonpathにあります。そうしないと、ImportErrorが発生します。奇妙な。多分、スクリプトはまったく動かないでしょうか? – rplnt

+0

pycurlはPYTHONPATH – Adrian

0

はすべてのヒントや助けをいただき、ありがとうございます。私はうまくいきますCRONを使用してスクリプトを起動して、この問題を回避しています。

なぜ、スクリプトはバックグラウンドで起動されるのが好きではなく、別の日を待つことができるその作業以来、考えられません。

ありがとうございます。

-1

私はcsvファイルにもっと多くのものを書くと、実際にこの問題を抱えています。それは、あなたのpythonがバックグラウンドで実行され、 "kill + pid"で終了したと思います... csv.writeがバッファストリームを持っているようですが、バックグラウンドプロセスを終了してストリームがなくなったら、これをチェックするためにcsvファイルにもっと多くのものを書くことができます。

+0

にある/usr/lib/pymodules/python2.7にインストールされているようで、バッファストリームのサイズは16kです。 – wjho

関連する問題