0

我需要从 csv 文件中读取特定列并根据列内的数据操作代码。我对硬编码列的方式不满意。我确信 Python 提供了一种更好的方式来完成我所做的事情。有没有人有更好的建议来做以下事情,尤其是从 csv 中读取特定的 10 列:

import csv
import os
import sys

file_csv = sys.argv[1]

Cat1=[]
Cat2=[]
Cat3=[]
Cat4=[]

with open(file_csv,'rb') as f:
    next(f)
reader=csv.reader(f,delimiter='\t')
for col1,col2,col3,col4,col5,col6,col7,col8,col9,col10 in reader:
    Cat1.append(col2)
    Cat2.append(col4)
    Cat3.append(col8)
    Cat4.append(col10)

datadict = zip(Cat1, Cat2, Cat3, Cat4)

for files, path, fname, pid in datadict:
    bla bla bla
4

1 回答 1

1

ADictReader会将您的行转换为以列名为键的字典,结果如下:

with open(file_csv,'rb') as f:
   reader = csv.DictReader(f)
   lines = list(reader)

for line in lines:
   print line['column1']
   print line['column2']
   # ...
于 2013-07-23T07:30:03.940 回答