wangsheng518 发表于 2024-11-21 19:56

python代码TXT转word格式的,请问谁会,各位论坛小伙伴

请问谁会python代码TXT转word格式的,各位论坛小伙伴。
pythontxt 转换word 格式

1.诉求 题目自己可以选择颜色。
2.诉求选的颜色是绿色不选的颜色是红色
3.诉求恭喜你,答对了?我的得分:5分填充黄色背景 绿色字体加粗    太遗憾了,答错了 我的得分:0分红色字体 加粗 黄色背景


源代码的忘了 ,打包了 EXE格式了    之前的原代码
https://wwij.lanzout.com/iz7qc2frpxoh

现在的效果
https://s1.locimg.com/2024/11/21/1bbdb43f45df1.jpg

https://s1.locimg.com/2024/11/21/93de9d4d6e630.jpg
https://s1.locimg.com/2024/11/21/4a3ec0eb938bd.jpg

tantanxin147 发表于 2024-11-21 19:56

wangsheng518 发表于 2024-11-22 03:57
感谢小伙伴,我看下载的不是叫试题转换器,名称是文件夹扫描工具

发错了,{:1_925:},https://wwwj.lanzouw.com/iWKe72ftd6lc

wangsheng518 发表于 2024-11-21 19:57

用GPT 总是识别不成功 没有源代码

rootbot007 发表于 2024-11-21 22:22

因为原先exe源码看不到,原有逻辑不是很清楚,有几个问题想核实一下哈:
1. 原先代码中对word文档标题是如何规定的?比如字体大小和字体颜色、字体样式,以及字体下发那条横线是必须要的吗?那条横线是什么?
2. 所有“问题“”的字体是宋体小四加粗,颜色用程序指定
3. 所有“选项”的字体是宋体11,颜色有红绿之分
4. “做题反馈”的字体是宋体11,颜色用上述逻辑给定

Arcticlyc 发表于 2024-11-21 22:42

# uncompyle6 version 3.9.2
# Python bytecode version base 3.8.0 (3413)
# Decompiled from: Python 3.8.10 (tags/v3.8.10:3d8993a, May3 2021, 11:48:03)
# Embedded file name: TXT转换WORD.py
import os, docx
from docx.enum.text import WD_COLOR_INDEX
from docx.oxml.ns import qn
from docx.shared import Pt
from docx.shared import RGBColor
cwd = os.getcwd()
input_file = os.path.join(cwd, "题库.txt")
output_file = os.path.join(cwd, "题库.docx")
while True:
    while True:
      input_filename = input("请输入需要调整的txt文件路径(默认为当前目录):" + input_file + "\n")
      output_filename = input("请输入调整后txt文件的路径(默认为当前目录):" + output_file + "\n")
      title = input("请输入WORD文档标题(默认为“单选题”):\n")
      if len(str(title)) == 0:
            title = "单选题"
      if len(str(input_filename)) == 0:
            input_filename = input_file
      if len(str(output_filename)) == 0:
            output_filename = output_file
      if os.path.isfile(input_filename):
            break
      else:
            print("路径输入错误,请重新输入!")

rgbs = {'黑色': (0, 0, 0),
'红色': (255, 0, 0),
'蓝色': (0, 0, 255),
'黄色': (255, 255, 0),
'青色': (0, 255, 255),
'品红': (0, 255, 255),
'CornflowerBlue': (100, 149, 237)}
filr = 1
print("可选颜色共有以下几种(请输入颜色名作为选择):")
for rgb in rgbs.keys():
    print(str(filr) + "." + rgb)
    filr += 1
else:
    p1 = input("请选择题目颜色...键入示例:黑色\n")
    if p1 in rgbs.keys():
      key_rgb = RGBColor(*rgbs)
    else:
      key_rgb = RGBColor(100, 149, 237)
      print("使用默认颜色...\n")
    p2 = input("请选择答案选项颜色...\n")
    if p2 in rgbs.keys():
      value_rgb = RGBColor(*rgbs)
    else:
      value_rgb = RGBColor(255, 0, 0)
      print("使用默认颜色...\n")
    document = docx.Document()
    document.add_heading(title, 0)
    document.styles["Normal"].font.name = "宋体"
    document.styles["Normal"]._element.rPr.rFonts.set(qn("w:eastAsia"), "宋体")
    values = list()
    key = ""
    flag = False
    value_right_rgb = WD_COLOR_INDEX.YELLOW

    def insert_docx(key_rgb, value_rgb, value_right_rgb, key, values):
      p = document.add_paragraph()
      key_run = p.add_run(key)
      key_run.font.color.rgb = key_rgb
      key_run.font.size = Pt(12)
      key_run.font.bold = True
      for m in values:
            if "(不选)" in m:
                m = m.replace("(不选)", "")
                run = p.add_run(m)
                run.font.color.rgb = value_rgb
            elif "(选)" in m:
                m = m.replace("(选)", "")
                run = p.add_run(m)
                run.font.color.rgb = value_rgb
                run.font.highlight_color = value_right_rgb
            else:
                run = p.add_run(m)


    with open(input_filename, encoding="utf-8") as f:
      lines = f.readlines()
    for line in lines:
      if "." in line]:
            num_s = line.split(".")
      else:
            if "、" in line]:
                num_s = line.split("、")
            else:
                num_s = line
      try:
            if len(num_s) >= 2 and num_s.isdigit():
                if flag:
                  insert_docx(key_rgb, value_rgb, value_right_rgb, key, values)
                  flag = False
                  values = list()
                key = line
            else:
                values.append(line)
                flag = True
      except Exception as e:
            try:
                print(e, line)
                values = list()
                key = ""
                flag = False
            finally:
                e = None
                del e

    else:
      document.save(output_filename)
      print("操作已成功完成,请到输出目录下查看!")
      os.system("pause")

# okay decompiling TXT转换WORD.pyc

wangsheng518 发表于 2024-11-21 22:54

rootbot007 发表于 2024-11-21 22:22
因为原先exe源码看不到,原有逻辑不是很清楚,有几个问题想核实一下哈:
1. 原先代码中对word文档标题是如 ...

我也不知道 以前论坛的小伙伴做的{:1_923:}

wangsheng518 发表于 2024-11-21 23:05

Arcticlyc 发表于 2024-11-21 22:42
# uncompyle6 version 3.9.2
# Python bytecode version base 3.8.0 (3413)
#...

我试了一下 选和不选 还是没有识别出来的{:1_919:}

tantanxin147 发表于 2024-11-22 02:49

https://s3.bmp.ovh/imgs/2024/11/22/d45b518618d05618.pnghttps://s3.bmp.ovh/imgs/2024/11/22/b8fd2521ec1648ed.png
哪里不行改哪里   下载地址:https://wwwj.lanzouw.com/iXkqe2ft1txa

wangsheng518 发表于 2024-11-22 03:57

tantanxin147 发表于 2024-11-22 02:49
哪里不行改哪里   下载地址:https://wwwj.lanzouw.com/iXkqe2ft1txa

感谢小伙伴,我看下载的不是叫试题转换器,名称是文件夹扫描工具{:1_919:}{:1_919:}

wangsheng518 发表于 2024-11-22 20:26

tantanxin147 发表于 2024-11-22 08:43
发错了,,https://wwwj.lanzouw.com/iWKe72ftd6lc

非常感谢小伙伴{:1_919:}{:1_919:}{:1_919:}
页: [1]
查看完整版本: python代码TXT转word格式的,请问谁会,各位论坛小伙伴