我对python还很陌生,并且已经过度扩展了自己。我已经破解了一个脚本,它使用cURL从Twitter轮询JSON输入流,并将其转换为CSV文件。
该脚本在前台$提示符下运行时运行良好,但在后台使用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)
字符串
我猜这是盲目明显的修复,但任何帮助将不胜感激。
4条答案
按热度按时间wi3ka0sx1#
如何在后台启动脚本?如果你不是通过
python script.py &
运行它,那么我猜路径有问题。尝试添加#!/usr/bin/python
个添加到脚本文件的第一行,使文件可执行,
chmod +x script.py
个让它通过
/full/path/to/script.py
个还要确保pycurl在脚本运行环境中的python路径中。
如果没有任何帮助(甚至在尝试之前),尝试捕获脚本的输出(如果它“崩溃”,它将打印traceback),即:
/full/path/to/script.py > /home/xxx/output.log 2>&1
2ul0zpep2#
谢谢你的所有提示和帮助。我已经绕过了这个问题,启动脚本使用的CRON,这是工作得很好。
仍然不知道为什么脚本不喜欢在后台启动,但既然它的工作,可以等待另一天。
谢谢
u91tlkcl3#
我相信这里的问题就是@wjho提到的。这可能描述了一个解决方案:CSVWriter not saving data to file the moment I write it
在用python写好行后添加'myfile.flush()'。
vdzxcuhz4#
我现在有这个问题,实际上,如果你在csv文件中写更多的东西,它会有所帮助,我认为你的python在后台运行,并通过“kill + pid”终止.