m0_63508843 2022-05-13 08:21 采纳率: 86.7%
浏览 110
已结题

有没有人帮我改一下代码 要求如第一个图所示的样式

import xlwt
f=open(r'D:\单选题.txt.txt',encoding='utf-8')
wb = xlwt.Workbook(encoding = 'utf-8')
ws1 = wb.add_sheet('first')
ws1.write(0,0,'题目类型')
ws1.write(0,1,'题目内容')
ws1.write(0,2,'答案')
ws1.write(0,3,'选项1')
ws1.write(0,4,'选项2')
ws1.write(0,5,'选项3')
row = 1
col = 0
k = 1
for lines in f:
a = lines.split(',')
k+=1
for i in range(len(a)):
ws1.write(row, col ,a[i])
col += 1
row += 1
col = 0
wb.save(r"单选题.xls")

img


要求改为如图所示的样式 而我的为什么不出结果
txt文件如下图所示

img

展开全部

  • 写回答

2条回答 默认 最新

  • 鱼鱼鱼鱼鱼_z 2022-05-13 08:47
    关注

    看效果图可知:

    1. 你需要匹配每一道题的标题 可以使用正则表达式 从"n."到"。"结束
    2. 答案选项从"[ABC]."到换行符结束
    3. 答案:正确答案:[ABC]
      然后循环既可以得到并写入excl中
    
    import xlwt
    import re
    with open(r'D:\单选题.txt',encoding='utf-8') as f:
        txt = f.read()
    wb = xlwt.Workbook(encoding = 'utf-8')
    ws1 = wb.add_sheet('first')
    ws1.write(0,0,'题目类型')
    ws1.write(0,1,'题目内容')
    ws1.write(0,2,'答案')
    ws1.write(0,3,'选项1')
    ws1.write(0,4,'选项2')
    ws1.write(0,5,'选项3')
    row = 1
    col = 0
    k = 1
    print(txt)
    lines = re.findall(r"[\d]\.(.*?。)", txt, re.I | re.S)
    ans1 = re.findall(r"A\.(.*?)\n", txt, re.I | re.S)
    ans2 = re.findall(r"B\.(.*?)\n", txt, re.I | re.S)
    ans3 = re.findall(r"C\.(.*?)\n", txt, re.I | re.S)
    print(lines)
    print(ans1)
    print(ans2)
    print(ans3)
    ans_true = re.findall(r"正确答案:([A-Z])", txt, re.I | re.S)
    row = 1
    for i in range(len(lines)):
        ws1.write(row, 0, '单选题')
        ws1.write(row, 1, lines[i])
        ws1.write(row, 2, ans_true[i])
        ws1.write(row, 3, ans1[i])
        ws1.write(row, 4, ans2[i])
        ws1.write(row, 5, ans3[i])
        row += 1
    wb.save(r"单选题.xls")
    

    img

    img

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    m0_63508843 2022-05-13 10:02

    你能私发个消息给我吗

    回复
    m0_63508843 回复 m0_63508843 2022-05-13 10:02

    我给你发一下 有报错的内容

    回复
    m0_63508843 2022-05-13 10:58

    for i in range(len(lines)): print(row) ws1.write(row, 0, '单选题') ws1.write(row, 1, lines[i]) ws1.write(row, 2, ans_true[i]) ws1.write(row, 3, ans1[i]) ws1.write(row, 4, ans2[i]) ws1.write(row, 5, ans3[i]) row += 1 wb.save(r"单选题.xls")

    回复
    展开全部15条评论
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 5月23日
  • 已采纳回答 5月16日
  • 创建了问题 5月13日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部