2011-10-26 90 views
0

我對Python非常陌生,並且自我過度擴展。 我已經使用cURL一起攻擊了一個使用cURL輪詢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 &然後我會猜測路徑有問題。嘗試添加

#!/usr/bin/python

腳本文件的第一行,通過

chmod +x script.py

使文件可執行文件,並通過

/full/path/to/script.py

運行它還要確保該pycurl在環境t中的python's path他的腳本正在運行。

如果沒有什麼幫助(或甚至嘗試之前)嘗試捕捉腳本的輸出(它將打印追溯如果「崩潰」),即:/full/path/to/script.py > /home/xxx/output.log 2>&1

+0

謝謝!我已經覆蓋了腳本/ chmod建議,重定向輸出沒有輸出。我將探索pythonpath建議 – Adrian

+0

如果沒有輸出,那麼pycurl可能位於pythonpath中,否則會發生ImportError。奇怪。也許腳本根本不運行? – rplnt

+0

pycurl似乎被安裝在/usr/lib/pymodules/python2.7這是在PYTHONPATH – Adrian

0

謝謝所有的提示和幫助。我通過使用CRON啓動腳本解決了問題,它運行良好。

仍然不知道爲什麼劇本不喜歡在後臺啓動,但由於其工作,可以等待另一天。

謝謝。

-1

我現在得到了這個問題,實際上,如果你在csv文件中寫入更多的東西,它會幫助,,,,我認爲你的Python在後臺運行,並終止「kill + pid」... 它似乎csv.write有一個緩衝流,如果你殺了後臺進程,則流走了,你可以在你的csv文件來檢查這個寫件事,,,,

+0

和緩衝流的大小是16K, – wjho