单步惩处:
1.统一import osimport redef natural_sort_key(filename): # 索取文献名中的数字和其他部分 return [int(text) if text.isdigit() else text for text in re.split(r'(\d+)', filename)]def main(msg): # 要是 msg 为空,则使用默许文献名 '统一.txt' output_file = msg if msg else '统一.txt' # 删除之前的统一文献(要是存在) if os.path.exists(output_file): os.remove(output_file) # 取适面前文献夹下统共的 txt 文献并按照数字排序 txt_files = sorted([f for f in os.listdir() if f.endswith('.txt')], key=natural_sort_key) # 掀开输出文献并写入 with open(output_file, 'w', encoding='utf-8') as outfile: for txt_file in txt_files: try: # 使用 gbk 编码读取文献 with open(txt_file, 'r', encoding='gbk') as infile: # 写入文献名符号(可选) # outfile.write(f'--- {txt_file} ---\n') # 不错聘任在统一的文献中加上文献名符号 outfile.write(infile.read()) outfile.write('\n') # 在每个文献后添加一个换行 except UnicodeDecodeError: print(f"文献 {txt_file} 的编码无法用 gbk 读取,尝试其他编码") print(f"统共文献已见效统一为 {output_file}")# 示例调用 main 函数if __name__ == "__main__": main('统一.txt') # 可将 '统一.txt' 替换为你思要的文献名2.开荒目次from docx import Documentimport redef set_heading_for_chapters(doc_path): # 掀开 Word/WPS 文档 doc = Document(doc_path) # 界说正则抒发式,匹配带有【第XXXX章】的段落 chapter_pattern = re.compile(r"【第\d+章】") # 遍历统共段落 for paragraph in doc.paragraphs: # 查验段落是否匹配章节形态 if chapter_pattern.search(paragraph.text): # 将段落表情开荒为 WPS/Word 的预设 "标题 1" 表情,四肢1级目次 paragraph.style = '标题 1' # 或 'Heading 1' 取决于你的WPS/Word版块讲话 # 保存修改后的文档,定名为 "updated_文献名" updated_doc_path = "updated_" + doc_path doc.save(updated_doc_path) print(f"文献已见效保存为 {updated_doc_path}")if __name__ == "__main__": # 替换为你的 Word/WPS 文档旅途 set_heading_for_chapters("02.docx") # 请将 "your_document.docx" 替换为本色文献名#######简易:启动后,表情其实依然见效诈欺,但文档中不会裸露,转到“援用”选项卡,聘任“目次”,然后聘任插入目次。更新后,即可裸露。
2.统一
import osimport refrom docx import Documentdef natural_sort_key(filename): # 索取文献名中的数字和其他部分 return [int(text) if text.isdigit() else text for text in re.split(r'(\d+)', filename)]def merge_text_files_to_docx(output_docx): # 创建一个新的 Word 文档 doc = Document() # 取适面前文献夹下统共的 txt 文献并按照数字排序 txt_files = sorted([f for f in os.listdir() if f.endswith('.txt')], key=natural_sort_key) # 界说正则抒发式,匹配带有【第XXXX章】的段落 chapter_pattern = re.compile(r"【第\d+章】") for txt_file in txt_files: try: # 使用 gbk 编码读取文献 with open(txt_file, 'r', encoding='gbk') as infile: # 读取文献内容 content = infile.read() # 将内容按段落分割 paragraphs = content.split('\n') for paragraph_text in paragraphs: # 添加段落到 Word 文档 paragraph = doc.add_paragraph(paragraph_text) # 查验段落是否匹配章节形态 if chapter_pattern.search(paragraph_text): # 将段落表情开荒为 WPS/Word 的预设 "标题 1" 表情,四肢1级目次 paragraph.style = '标题 1' # 或 'Heading 1' 取决于你的WPS/Word版块讲话 # 添加换行以隔离不同文献内容 doc.add_paragraph() # 添加空段落 except UnicodeDecodeError: print(f"文献 {txt_file} 的编码无法用 gbk 读取,尝试其他编码") # 保存统一后的文档 doc.save(output_docx) print(f"统共文献已见效统一为 {output_docx}")if __name__ == "__main__": # 统一文献并保存为 Word 文档 merge_text_files_to_docx('统一文档.docx') # 统一后的文献名