如何在Excel工作表中对列进行排序

时间:2015-06-30 18:19:40

标签: python excel sorting

所以我理解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']

据我所知,它正在返回文件名中的第3个字母,但如何对其进行排序并返回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?

1 个答案:

答案 0 :(得分:0)

import csv
import oprator

# read the data from the source file
with open('case_name.csv') as infile:
    data = list(csv.reader(infile, dialect='excel'))

# sort a list of sublists by the item in index 2
data.sort(key=operator.itemgetter(2))


# time to write the results into a file
with open('case_name_sorted.csv', 'w') as outfile:
    writer = csv.writer(outfile, dialect='excel')
    writer.writerows(data)