读取文件,列表嵌套排序,写入表格【Python】

目录

问题

思路

解答

参考资料


问题:

读取给定的data.txt 文件,将该文件中的行按数学成绩从高到低进行排序,并将结果写入到test.XLS文件中

 

每隔一行保存一条数据,依次为“学号、姓名、数学成绩、语文成绩”

思路: 

  1. 读取.txt文件
  2. 对嵌套列表按要求进行排序
  3. 写入表格

解答: 

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值