【发布时间】:2015-07-01 03:49:19
【问题描述】:
所以我了解了排序在 Python 中的工作原理。如果我把...
a = (["alpha2A", "hotel2A", "bravo2C", "alpha2B", "tango3B", "alpha3A", "zulu.A1", "foxtrot8F", "zulu.B1"]
a.sort()
print a
我会得到...
'alpha2A', 'alpha2B', 'alpha3A', 'bravo2C', 'foxtrot8F', 'hotel2A', 'tango3B', 'zulu.A1', 'zulu.B1']
但是,我想对 Excel 工作表中的列进行排序,所以我尝试了...
isv = open("case_name.csv", "w+")
a = (["case_name.csv"[2]])
a.sort()
print a
得到了回报……
['s']
我知道它正在返回文件名中的第三个字母,但我如何对其进行排序并返回 Excel 工作表的整个列?
更新:新代码
import csv
import operator
with open('case_name.csv') as infile:
data = list(csv.reader(infile, dialect=csv.excel_tab))
data.sort(key=operator.itemgetter(2))
with open('case_name_sorted.csv', 'w') as outfile:
writer = csv.writer(outfile, dialect='excel')
writer.writerows(data)
print(sum(1 for row in data if len(row) < 3))
然后它返回
data = list(csv.reader(infile, dialect=csv.excel_tab))
_csv.Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
【问题讨论】:
-
如果您可以将 excel 文件保存为
.csv文件,那么您的生活将变得更加轻松。你有这种可能吗? -
是的,它已经是一个 csv 文件,但是谢谢。
-
将第一个
with块的正文更改为data = list(csv.reader(infile, dialect=csv.excel_tab))。那将是一个好的开始 -
好的,我更新了代码和返回
-
我们现在又回到了一个较早的错误,为此我将您指向this post