鱼C论坛

 找回密码
 立即注册
查看: 953|回复: 6

[已解决]for语句写入excel问题

[复制链接]
发表于 2021-9-3 16:02:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 颖颖M杰杰 于 2021-9-3 16:30 编辑

爬取到相关信息,在用for语句写入excel的时候发现,只保存最后一条信息。大家看看是哪问题?
def save_to_excel(item):
    wb = openpyxl.Workbook()
    ws = wb.active

    ws["A1"] = "系编号"
    ws["B1"] = "学校编号"
    ws["C1"] = "年级信息"
    ws["D1"] = "年度班级信息"
    ws["E1"] = "出生日期"
    ws["F1"] = "辅导员姓名"
    ws["G1"] = "身份信息"

    for each in item:
        ws.append(each)

    wb.save("个人编号信息.xlsx")

def main():
        item = get_itme(res)
        #print(item)
        save_to_excel(item)

if __name__ == '__main__':
    main()



                               
登录/注册后可看大图


                               
登录/注册后可看大图


[['0004002190', '000017757', '管理系2020届3班', '20916363', 19610706, '陈光明', '1975******17']]
[['0004003263', '000017757', '机电系2020届2班', '20917362', 19610710, '黄玲玉', '1973******15']]
[['0004002082', '000017757', '管理系2020届1班', '20915361', 19620119, '李铭荣', '1980******10'], ['0004002083', '000017757', '管理系2020届2班', '20915362', 19620200, '程锋', '1979******16'],['0004002084', '000017757', '管理系2020届3班', '20915363', 19620201, '李铭波', '1979******19']]
[['004002894', '000017757', '英语系2020届1班', '20916461', 19640315, '胡蓉霞', '1981******19']]
最佳答案
2021-9-3 17:05:17
  1. import openpyxl
  2. res = 'res.txt'
  3. def get_itme(res):
  4.     lst = []
  5.     with open(res) as f:
  6.         text = f.read().replace(',',',')
  7.         lst2 = text.split('\n')
  8.         for i in lst2:
  9.             lst+=eval(i)
  10.     return lst

  11. def save_to_excel(item):
  12.     wb = openpyxl.Workbook()
  13.     ws = wb.active

  14.     ws["A1"] = "系编号"
  15.     ws["B1"] = "学校编号"
  16.     ws["C1"] = "年级信息"
  17.     ws["D1"] = "年度班级信息"
  18.     ws["E1"] = "出生日期"
  19.     ws["F1"] = "辅导员姓名"
  20.     ws["G1"] = "身份信息"

  21.     for each in item:
  22.         ws.append(each)

  23.     wb.save("个人编号信息.xlsx")

  24. def main():
  25.         item = get_itme(res)
  26.         #print(item)
  27.         save_to_excel(item)

  28. if __name__ == '__main__':
  29.     main()

复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-3 16:22:53 | 显示全部楼层
请贴完整代码,同时提供那个txt。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-3 16:31:46 | 显示全部楼层
suchocolate 发表于 2021-9-3 16:22
请贴完整代码,同时提供那个txt。

就是不知为什么用print能打出来,然后保存excel的时候只能保存最后一条信息,前面的都给覆盖了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-3 16:35:15 | 显示全部楼层
你打印一下item
看看结构是啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-3 16:42:58 | 显示全部楼层
逃兵 发表于 2021-9-3 16:35
你打印一下item
看看结构是啥

[['0004002190', '000017757', '管理系2020届3班', '20916363', 19610706, '陈光明', '1975******17']]
<class 'list'>
[['0004003263', '000017757', '机电系2020届2班', '20917362', 19610710, '黄玲玉', '1973******15']]
<class 'list'>
[['0004002082', '000017757', '管理系2020届1班', '20915361', 19620119, '李铭荣', '1980******10'], ['0004002083', '000017757', '管理系2020届2班', '20915362', 19620200, '程锋', '1979******16'],['0004002084', '000017757', '管理系2020届3班', '20915363', 19620201, '李铭波', '1979******19']]
<class 'list'>
[['004002894', '000017757', '英语系2020届1班', '20916461', 19640315, '胡蓉霞', '1981******19']]
<class 'list'>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-3 16:47:34 | 显示全部楼层
这是多层结构的list,问题出在这了
最后一次返回的只有最后一个列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-3 17:05:17 | 显示全部楼层    本楼为最佳答案   
  1. import openpyxl
  2. res = 'res.txt'
  3. def get_itme(res):
  4.     lst = []
  5.     with open(res) as f:
  6.         text = f.read().replace(',',',')
  7.         lst2 = text.split('\n')
  8.         for i in lst2:
  9.             lst+=eval(i)
  10.     return lst

  11. def save_to_excel(item):
  12.     wb = openpyxl.Workbook()
  13.     ws = wb.active

  14.     ws["A1"] = "系编号"
  15.     ws["B1"] = "学校编号"
  16.     ws["C1"] = "年级信息"
  17.     ws["D1"] = "年度班级信息"
  18.     ws["E1"] = "出生日期"
  19.     ws["F1"] = "辅导员姓名"
  20.     ws["G1"] = "身份信息"

  21.     for each in item:
  22.         ws.append(each)

  23.     wb.save("个人编号信息.xlsx")

  24. def main():
  25.         item = get_itme(res)
  26.         #print(item)
  27.         save_to_excel(item)

  28. if __name__ == '__main__':
  29.     main()

复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-2 20:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表