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

x33g5p2x  于 2023-11-14  发布在  Python
关注(0)|答案(4)|浏览(124)

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

字符串
我猜这是盲目明显的修复,但任何帮助将不胜感激。

wi3ka0sx

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

2ul0zpep

2ul0zpep2#

谢谢你的所有提示和帮助。我已经绕过了这个问题,启动脚本使用的CRON,这是工作得很好。
仍然不知道为什么脚本不喜欢在后台启动,但既然它的工作,可以等待另一天。
谢谢

u91tlkcl

u91tlkcl3#

我相信这里的问题就是@wjho提到的。这可能描述了一个解决方案:CSVWriter not saving data to file the moment I write it
在用python写好行后添加'myfile.flush()'。

vdzxcuhz

vdzxcuhz4#

我现在有这个问题,实际上,如果你在csv文件中写更多的东西,它会有所帮助,我认为你的python在后台运行,并通过“kill + pid”终止.

相关问题