Выходные файлы не созданы с запущенным скриптом Python в фоновом режиме - PullRequest
0 голосов
/ 26 октября 2011

Я очень новичок в Python и переоценил себя. Я взломал скрипт, который опрашивает входной поток JSON из Twitter с помощью cURL и преобразует его в файл CSV.

Сценарий отлично работает при запуске в командной строке $ на переднем плане, но создает не более 0-байтового файла при запуске в фоновом режиме с использованием nohup - даже заголовки 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 голосов
/ 27 октября 2011

Спасибо за все советы и помощь. Я справился с проблемой, запустив скрипт с использованием CRON, который работает хорошо.

До сих пор не знаю, почему скрипт не любит запускаться в фоновом режиме, но, поскольку он работает, он может подождать еще один день.

Спасибо.

0 голосов
/ 25 ноября 2015

У меня есть эта проблема сейчас, на самом деле, если вы напишите больше в файле csv, это поможет ,,,, я думаю, что ваш питон работает в фоновом режиме и завершается "kill + pid" ... кажется, что csv.write имеет буферный поток, если вы убьете фоновый процесс, то поток пропадет, вы можете записать больше вещей в свой csv-файл, чтобы проверить это ,,,,

0 голосов
/ 26 октября 2011

Как запустить скрипт в фоновом режиме?Если вы не запускаете его только на python script.py &, то я думаю, что есть проблема с путем.Попробуйте добавить

#!/usr/bin/python

в первую строку файла скрипта, сделать файл исполняемым с помощью

chmod +x script.py

и запустить его

/full/path/to/script.py

Также убедитесь, что pycurl находится в пути питона в среде, из которой запускается скрипт.

Если ничего не помогает (или даже перед попыткой) попытаться перехватить выходные данные скрипта (он напечатает трассировку, если он "падает"), то есть: /full/path/to/script.py > /home/xxx/output.log 2>&1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...