2017-01-09 67 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

嘗試在for循環中使用[zip](https://docs.python.org/3/library/functions.html#zip):'''爲cit,年份爲zip(標題,日期):... ''' – 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樣本文件所能做的。