python如何修剪csv DictReader键中的尾随空格

python how to trim trailing spaces in csv DictReader keys

我使用的是python(2.6)csv听写器。我的输入文件有一个标题行,其中列名称带有尾随空格:

1
2
colname1,      colname2     ,col3, etc.
XX, YY, ZZ

返回的dict对象的key()=['colname1', 'colname2 ', 'col3']

是否可以从键中修剪前导空格和尾随空格?

--编辑

按键名处理时出现问题:

1
2
3
4
with open(fname) as f:
   r = csv.DictReader(f)
   for row in r:
      print"processing", r["column1"], r["column2"]

这些文件是数据库转储。dump程序太聪明了——它根据数据调整输出列宽——这意味着不同的选择集将具有不同的列宽和不同的键长度。有时我必须使用r['column2 '],有时需要填充或减少空间。哎哟!


只需手动读取第一行并将其传递给DictReader

1
2
3
with open('file.csv') as fh:
    header = [h.strip() for h in fh.next().split(',')]
    reader = csv.DictReader(fh, fieldnames=header)


您需要在csv模块中注册自定义方言

1
2
csv.register_dialect('MyDialect', quotechar='"', skipinitialspace=True, quoting=csv.QUOTE_NONE, lineterminator='
'
, strict=True)

然后在创建听写器时使用方言:

1
my_reader = csv.DictReader(trip_file, dialect='MyDialect')

以下是所有方言选项