当我需要所有行时打印最后一行

时间:2014-06-04 22:00:18

标签: python csv dictionary

我在尝试使用csv.DictReader读取我的.txt文件中的第一个以分隔管道划分的数据时。以下是我正在使用的数据示例:

someCSVfile.csv|cust_no,0|streetaddr,1|city,2|state,3|zip,4|phone_home,5|firstname,6|lastname,7|status,9|
someCSVfile1.csv|cust_no,0|streetaddr,1|city,2|state,3|zip,4|phone_home,5|firstname,6|lastname,7|status,9| 

到目前为止,这是我的代码:

import csv
reader = csv.reader(open('match_log.txt','rb'), dialect='excel', delimiter='|')

for row in reader:
    skipfirstRow=reader.next()
    skipfirstRowAgain=reader.next()
    Dictreader=csv.DictReader(reader,skipfirstRow)
    print row

我已经非常彻底地研究.next(),但这似乎并不奏效。当我打印行时,它会打印每一行,当我不想要打印第一行(.csv文件)时。还有其他可行的方法吗?

编辑:这是我的最新代码:

import csv
reader = csv.reader(open('match_log.txt','rb'), dialect='excel', delimiter='|')

data = {}

for row in reader:
  filenameVariable = row[0] 
  data = dict(item.split(',') for item in row[1:])

print data
print filenameVariable

现在,当我需要所有行时,data和filenameVariable正在打印最后一行。我试过.append但是没有用。我还能用什么呢?

1 个答案:

答案 0 :(得分:2)

.csv部分是第一列/字段,而不是第一行。推进reader确实会跳过行,但不会影响每一行中的内容。 (行遍!)

如果您想取消序列中的第一项,请打印row[1:]而不是row