我是python的新手并且过度扩展自己。 我已经破解了一个脚本,该脚本使用cURL从Twitter轮询JSON输入流并将其转换为CSV文件。
当在前台的$ prompt中运行时,脚本运行得很完美,但只有在使用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 :(得分:0)
如何在后台启动脚本?如果您不是仅仅python script.py &
运行它,那么我猜测路径存在问题。尝试添加
#!/usr/bin/python
到脚本文件的第一行,通过
使文件可执行 chmod +x script.py
并按
运行 /full/path/to/script.py
还要确保pycurl位于运行脚本的环境中的python's path。
如果没有任何帮助(或者甚至在尝试之前)尝试捕获脚本的输出(如果它“崩溃”,它将打印回溯),即:/full/path/to/script.py > /home/xxx/output.log 2>&1
答案 1 :(得分:0)
感谢您提供所有提示和帮助。我通过使用CRON启动脚本来解决这个问题。
仍然不知道为什么脚本不喜欢在后台启动,但因为它的工作可以等待另一天。
谢谢。
答案 2 :(得分:-1)
我现在遇到了这个问题,实际上,如果你在csv文件中写了更多的东西,它会有所帮助,,,,我认为你的python在后台运行并被" kill + pid"终止。 ... 似乎csv.write有一个缓冲流,如果你杀了后台进程,那么流消失了,你可以在你的csv文件中写更多东西来检查这个,,,,