2017-01-09 2 views
0

Моя главная цель - написать скрипт Python, который преобразует каждую строку таблицы в отдельный файл уценки, используя каждый столбец как значение в заголовке YAML файла. Прямо сейчас, окончательный цикл for, который я написал, не только продолжает идти и уходить и уходить ... он также, похоже, не корректно устанавливает значения.Использование python для печати строк между значениями csv

import csv 

f = open('data.tsv') 
csv_f = csv.reader(f, dialect=csv.excel_tab) 

date = [] 
title = [] 

for column in csv_f: 
    date.append(column[0]) 
    title.append(column[1]) 

for year in date: 
    for citation in title: 
     print "---\ndate: %s\ntitle: %s\n---\n\n" % (year, citation) 

Я использую разделенные табуляцией, потому что некоторые из полей в моей таблице являются куски текста с запятыми. Поэтому в идеале, скрипт должен вывести что-то вроде следующего (я решил заняться расщеплению этот вывод в отдельные файлы уценки позже одну вещь в то время.):

--- 
date: 2015 
title: foo 
--- 

--- 
date: 2016 
title: bar 
--- 

Но вместо этого я получать неуместны значения и вывод, что никогда не заканчивается. Я, очевидно, учусь, когда я иду сюда, поэтому любые советы приветствуются.

+0

Это поможет, если вы предоставили нам данные, с которыми вы столкнулись. –

+1

Попробуйте использовать [zip] (https://docs.python.org/3/library/functions.html#zip) в цикле for: '' 'для cit, year in zip (title, date): ... '' ' – wwii

+0

Это сделало это, спасибо! – strobodyne

ответ

0
import csv 
with open('data.tsv', newline='') as f: 
    csv_f = csv.reader(f, dialect=csv.excel_tab) 
    for column in csv_f: 
     year, citation = column # column is a list, unpack them directly 
     print "---\ndate: %s\ntitle: %s\n---\n\n" % (year, citation) 

Это все, что я могу сделать без образца CSV-файла.

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