使用带空格的标头在csv中搜索python

时间:2015-05-28 19:10:42

标签: python csv

当我使用行中有空格的列名时,脚本不会打印任何内容,但是如果我使用没有空格的列名,则脚本会打印结果。如何在空格中使用标题?

#!/usr/bin/python
import csv
import os
import fnmatch

rootdir = '/var/www/html/storage/DATA/'
pattern = 'file**.csv'

for root, dirs, files in os.walk(rootdir):
        for filename in fnmatch.filter(files,pattern):
                path = os.path.join(root, filename)
                with open(path) as f:
                        reader = csv.DictReader(f)
                        for row in reader:
                #if row['newColor'] == 'blue': #This works.
                if row['cid number'] == '998': #This does not work.
                        print(row['oldColor'])


Sample Data
market    brand    type    newColor    oldColor    cid number    length
SFO    6754    x    blue    orange    998    6
CHI    6754    x    green    black    932    6
ATL    6766    x    blue    yellow    822    6

1 个答案:

答案 0 :(得分:1)

如果你的csv文件是用逗号分隔的(你说它是),那么它应该是这样的:

market,brand,type,newColor,oldColor,cid number,length
SFO,6754,x,blue,orange,998,6
CHI,6754,x,green,black,932,6
ATL,6766,x,blue,yellow,822,6

如果是这种情况,那么您的代码应该按原样运行(假设缩进是正确的)。如果您的csv看起来像您粘贴的内容(即由空格分隔),则cid number会被视为两个单独的列cidnumber

我会打印出for row in reader循环中的每一行以确认字典的键