我试图将datalist.csv中的数据存储在变量“ sort”中,以便可以将数据附加到文件中,但是,它返回一个空字段。
datalist.csv的示例文件是
W_A11, 2000-02, Moving average, 59.66666667, 50.92582302, 68.40751031, Injuries, Number, Assault, Validated, Whole pop, All ages, Fatal,
W_A12, 2000-02, Moving average, 1.543343121, 1.317063238, 1.769623003, Per 100,000 people, Age-standardised rate, Assault, Validated, Whole pop, All ages, Fatal,
W_F11B, 2000-02, Moving average, 64.33333333, 55.25710337, 73.40956329, Injuries, Number, Falls, Validated, Whole pop, 0-74 years, Fatal
我不确定该怎么做。
infile = open("datalist.csv", "r")
next(infile)
for line in infile:
line.strip("'")
line.strip('"')
csvfile = csv.reader(infile, delimiter=',')
csvfile = list(csvfile)
sort = sorted(csvfile, key= operator.itemgetter(6))
for line in sort:
print(line)
我希望可以存储datalist.csv中的数据,并让print语句返回csv,但由第六个索引值组织。而是返回一个空字段。
答案 0 :(得分:4)
此循环:
for line in infile:
line.strip("'")
line.strip('"')
完全消耗infile
(并且对行不执行任何操作; strip
不会对数据进行适当的修改,并且它可能并没有做您认为正在做的事情,它只会删除前导和尾随全行引号,而不是每个字段引号。
因此,当您到达时:
csvfile = csv.reader(infile, delimiter=',')
reader
一无所有。
摆脱循环,离开(经过一些清理,例如使用with
语句并传递newline=''
以满足csv
模块要求):
with open("datalist.csv", newline='') as infile:
csvfile = csv.reader(infile, delimiter=',')
next(csvfile)
sort = sorted(csvfile, key=operator.itemgetter(6))
for line in sort:
print(line)
它应该可以工作。