输出文件未在后台运行python脚本创建

时间:2011-10-26 10:23:18

标签: python csv background-process

我是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)

我猜这是很明显的修复,但任何帮助都会非常感激。

3 个答案:

答案 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文件中写更多东西来检查这个,,,,