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

查看 68|回复 9
作者:wangsheng518   
[color=]请问谁会python代码TXT转word格式的,各位论坛小伙伴。
python  txt 转换word 格式
1.诉求 题目自己可以选择颜色。
2.诉求  选的颜色是
绿色
  不选的颜色是
[color=]红色
3.诉求  恭喜你,答对了?我的得分:5分  填充黄色背景 绿色字体加粗    太遗憾了,答错了 我的得分:0分  红色字体 加粗 黄色背景
源代码的忘了 ,打包了 EXE格式了    之前的原代码
https://wwij.lanzout.com/iz7qc2frpxoh
现在的效果


格式, 微软

tantanxin147   


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

发错了,,https://wwwj.lanzouw.com/iWKe72ftd6lc
wangsheng518
OP
  

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

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

[Python] 纯文本查看 复制代码# uncompyle6 version 3.9.2
# Python bytecode version base 3.8.0 (3413)
# Decompiled from: Python 3.8.10 (tags/v3.8.10:3d8993a, May  3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)]
# 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[p1])
    else:
        key_rgb = RGBColor(100, 149, 237)
        print("使用默认颜色...\n")
    p2 = input("请选择答案选项颜色...\n")
    if p2 in rgbs.keys():
        value_rgb = RGBColor(*rgbs[p2])
    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[0[:4]]:
            num_s = line.split(".")
        else:
            if "、" in line[0[:4]]:
                num_s = line.split("、")
            else:
                num_s = line
        try:
            if len(num_s) >= 2 and num_s[0].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
OP
  


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

我也不知道 以前论坛的小伙伴做的
wangsheng518
OP
  


Arcticlyc 发表于 2024-11-21 22:42
[mw_shl_code=python,true]# uncompyle6 version 3.9.2
# Python bytecode version base 3.8.0 (3413)
#  ...

我试了一下
选和不选
还是没有识别出来的  
tantanxin147   

[i][i]
哪里不行改哪里   下载地址:https://wwwj.lanzouw.com/iXkqe2ft1txa
wangsheng518
OP
  


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

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

wangsheng518
OP
  


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

非常感谢小伙伴
您需要登录后才可以回帖 登录 | 立即注册