2013-07-04 2 views
0

Я использую Spyder и получаю доступ к API reddit, чтобы получить некоторые данные и записать их в csv, когда я распечатываю строки, все работает нормально, но тогда файл csv просто не получается созданный, я пробовал много вещей, но ничего не работает, и очень похожий фрагмент кода отлично работает, и я получил файл csv, поэтому я понятия не имею, в чем проблема.Python не создает и не записывает в csv

with open('finalplswork.csv', 'wb') as fl: 
    writr = csv.writer(fl) 
    for subid in idsss: 
     submission = r.get_submission(submission_id=subid) 
     created_utc=submission.created_utc 
     created_date_utc = datetime.fromtimestamp(created_utc) 
     data=(subid, created_utc, created_date_utc) 
     writr.writerow(data) 
+0

Как вы управляете файлом? Проверьте каталог, в котором находится этот файл python, а не каталог, из которого вы его используете. –

ответ

2

Ваш CSV является создан, но вы используете относительный путь к файлу.

Вам нужно напечатать os.getcwd(), чтобы узнать, где он создается, или установить текущий рабочий каталог там, где вы ожидаете появления файла.

Лучше использовать абсолютный путь к файлу вместо:

with open('C:/full/path/to/your/documents/folder/finalplswork.csv', 'wb') as fl: 
+0

Хорошая теория. Но одно примечание: вы знаете, где оно создано: 'os.getcwd()'. :) –

+0

@JohnZwinck: Конечно, но я сильно подозреваю, что CWD находится где-то в 'C: \ Python27', а не в лучшем месте, чтобы идти spelunking для потерянного CSV-файла. –

+0

Не говоря уже о Windows, если вы не используете с повышенной подсказкой, вы не можете писать в большинство каталогов в основном системном диске (т. е. на диске «C»). –

0

Я превратил свой код в самодостаточный Например:

with open('finalplswork.csv', 'wb') as fl: 
    writr = csv.writer(fl) 
    for subid in range(3): 
     submission = 'foo' 
     created_utc = 130000 
     created_date_utc = 20130704 
     data=(subid, created_utc, created_date_utc) 
     writr.writerow(data) 

Он отлично работает:

$ cat finalplswork.csv 
0,130000,20130704 
1,130000,20130704 
2,130000,20130704 

Так ваша проблема не в коде, который вы здесь указали.

+0

Да, правда, я просто попробовал его в python на терминале, а не в IDE Spyder, и это сработало, поэтому я думаю, что это ошибка Spyder. Я по-прежнему буду принимать ваш ответ в ближайшее время или мне следует удалить вопрос? – d12n

+0

Не удаляйте свой вопрос, все в порядке. Я не уверен, что это ошибка Spyder - см. Ответ Martijn! –

Смежные вопросы