我有一个包含内容的.csv文件(示例)
Attributes,Description,Dial-Up
4,2,0.2
3,1,0.4使用dictreader:
dictreader = csv.DictReader(open(filename, "rb"), delimiter=',')
dictdata = {}
count=0
for row in dictreader:
dictdata[count]=row
count=count+1并在表中显示或使用写入器,我将得到:
Dial-Up,Attributes,Description
0.2,4,2
0.4,3,1那么我怎样才能对字段名进行排序呢?
发布于 2013-01-14 12:28:25
DictReader将字段(dict键)存储在名为fieldnames的属性中。
fields = dictreader.fieldnames
print(fields)
# ['Attributes', 'Description', 'Dial-Up']因此,要按以下顺序打印行值:
print(','.join(fields))
for row in dictreader:
print(','.join(row[field] for field in fields))收益率
Attributes,Description,Dial-Up
4,2,0.2
3,1,0.4或者,使用@JonClements的想法:
import operator
fields = dictreader.fieldnames
getfields = operator.itemgetter(*fields)
for row in dictreader:
print(','.join(getfields(row)))使用operator.itemgetter的动机是它比使用列表理解更快:
In [70]: %timeit getfields(row)
10000000 loops, best of 3: 174 ns per loop
In [71]: %timeit [row[field] for field in fields]
1000000 loops, best of 3: 272 ns per loophttps://stackoverflow.com/questions/14317849
复制相似问题