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 に答える