[Python] 纯文本查看 复制代码import docx
from docx.shared import Pt
from docx.oxml.ns import qn
from docx.shared import RGBColor
document = docx.Document()
# document.add_heading('Document Title', 0) # 插入标题
input_filename = "C:\out.txt"
out_filename = "C:\pest.docx"
try:
input_filename = input("请输入需要调整格式txt文件绝对路径:\n示例:G:\scala\scala_test\my_test\data\out.txt\n")
out_filename = input("请输入需要调整格式后文件保存的绝对路径:\n示例:G:\scala\scala_test\myesu\pest.docx\n")
except:
print("默认保存在C:\pest.docx")
rgbs = {
"黑色": (0, 0, 0),
"红色": (255, 0, 0),
"蓝色": (0, 0, 255),
"黄色": (255, 255, 0),
"青色": (0, 255, 255),
"品红": (0, 255, 255),
"CornflowerBlue": (100, 149, 237)
}
try:
print("请选择题目颜色...键入示例:黑色")
filr = 1
for rgb in rgbs.keys():
print(str(filr) + "." + rgb)
filr += 1
inp = input()
print(inp)
# print(rgbs[inp])
key_rgb = RGBColor(*rgbs[inp])
print("请选择答案颜色...")
filr = 1
for rgb in rgbs.keys():
print(str(filr) + "." + rgb)
filr += 1
value_rgb = RGBColor(*rgbs[input()])
except:
key_rgb = RGBColor(0, 0, 0)
value_rgb = RGBColor(70, 130, 180)
print("使用默认颜色...")
document.styles['Normal'].font.name = '宋体' # 设置字体
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
# input_filename = input("请输入需要去除重复的文件绝对路径:\n示例:G:\scala\scala_test\my_test\data\pc.txt")
with open(input_filename, encoding="utf-8") as f:
lines = f.readlines()
values = list()
key = ""
flag = False
for line in lines:
if len(line) < 6:
num_s = line[0:len(line)].split(".")
else:
num_s = line[0:6].split(".")
try:
if len(num_s) >= 2 and num_s[0].isdigit():
if flag:
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
run = p.add_run(values)
# 字体颜色
run.font.color.rgb = value_rgb
flag = False
values = list()
key = line # .replace(num_s[0] + ".", "")
else:
values.append(line)
flag = True
except Exception as e:
print(e, line)
values = list()
key = ""
flag = False
document.save(out_filename) # 保存文档
import docx
from docx.oxml.ns import qn
from docx.shared import RGBColor
document = docx.Document()
def insert_docx(key, values):
p = document.add_paragraph() # 插入段落
key_run = p.add_run(key)
# 加粗
key_run.font.bold = True
run = p.add_run(values)
# 字体颜色
run.font.color.rgb = RGBColor(70, 130, 180)
rgbs = {
"黑色": (0, 0, 0),
"蓝色": (0, 0, 255),
"黄色": (255, 255, 0),
"青色": (0, 255, 255),
"品红": (0, 255, 255)
}
document.styles['Normal'].font.name = '宋体' # 设置字体
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
with open("G:\scala\scala_test\my_test\data\out.txt", encoding="utf-8") as f:
lines = f.readlines()
values = list()
key = ""
flag = False
for line in lines:
if len(line) < 6:
num_s = line[0:len(line)].split(".")
else:
num_s = line[0:6].split(".")
try:
if num_s[0].isdigit():
if flag:
insert_docx(key, values)
flag = False
values = list()
key = line # .replace(num_s[0] + ".", "")
else:
values.append(line)
flag = True
except Exception as e:
print(e, line)
values = list()
key = ""
flag = False
else:
insert_docx(key, values)
document.save('test_p.docx') # 保存文档
不好意思,因为最后一个题目还没有插入循环就结束了,在循环结束后再执行一次插入就好了。。。