目录
问题
思路
解答
参考资料
读取给定的data.txt 文件,将该文件中的行按数学成绩从高到低进行排序,并将结果写入到test.XLS文件中
每隔一行保存一条数据,依次为“学号、姓名、数学成绩、语文成绩”
import xlwt #写入文件
import xlrd #打开excel文件
fopen = open("C:\\Users\\Desktop\\data.txt","r")
lines = fopen.readlines() #一行一行读,最后返回一个列表
#新建一个execl文件
file = xlwt.Workbook(encoding='utf-8',style_compression=0)
#新建一个sheet(工作表)
sheet = file.add_sheet('data')
mylist = list()
for line in lines: #对每一个列表里面的列表
n = line.split() #以空格分割
if(n!=[]): #不为空的,则在拆散之后,加入到新的列表里面(没有这一句的话,读取中间的空行时会报错)
mylist.append([n[0],n[1],int(n[2]),int(n[3])]) #将str数据转化成int
# print(mylist) #测试语句
mylist.sort(key=lambda x:x[2],reverse=True) #以x[2]进行排序,reverse表示是否需要反序
#mylist.sort(key=lambda x:(x[2],x[3]),reverse=True) #这一句表示:若x[2](数学成绩)相同,则比较x[3](语文成绩)
# print(mylist)
i = 0
for n1 in mylist: #取出嵌套列表中的每一个列表
j = 0
print(n1)
for n2 in n1: #取出列表中的每一条信息,依次往后面的格子放入
print(n2)
sheet.write(i,j,n2) #写入sheet
j = j + 1
i = i + 1
file.save('C:\\Users\\Desktop\\data.xls')
https://blog.csdn.net/weixin_38052444/article/details/82119818
https://blog.csdn.net/feng98ren/article/details/79693630
https://zixuephp.net/article-422.html