单步处罚: 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' #
单步处罚:
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') # 销亡后的文献名