最近需要将图片识别出的TXT文件进行格式转化,但是用软件进行的话需要自己上传,文件量大的话可能会出现文件遗漏,并且还面临不同编码格式的TXT可能软件不识别的问题。并且收费软件虽然快但是毕竟要money,免费的则需要排队,所以写了一段代码在电脑上便能转化。
第一步识别TXT编码类型并进行内容读取。
import os
import chardet
import codecs
from docx import Document
def txt_to_word(input_file, output_file):
"""
将TXT文件转换为Word (.docx) 文件
:param input_file: 输入的TXT文件路径
:param output_file: 输出的Word文件路径
"""
# 创建一个新的Word文档对象
doc = Document()
# 检测文件的原始编码
with open(input_file, 'rb') as binary_file:
raw_data = binary_file.read()
detected_encoding = chardet.detect(raw_data)['encoding']
# 以原始编码打开文件并读取内容
with open(input_file, 'r', encoding=detected_encoding) as txt_file:
txt_content = txt_file.read()
第二部进行TXT类容写入
# 将TXT内容逐段添加到Word文档中
for paragraph in txt_content.split('\n\n'): # 假设两段空行分隔段落
doc.add_paragraph(paragraph)
# 保存转换后的Word文档
doc.save(output_file)
第三步就是文件保存成WORD以及设定文件路径
def convert_folder_txt_to_word(input_folder, output_folder):
"""
将指定文件夹中所有TXT文件转换为Word (.docx) 文件
:param input_folder: 存放TXT文件的文件夹路径
:param output_folder: 存放转换后Word文件的目标文件夹路径
"""
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for filename in os.listdir(input_folder):
if filename.endswith('.txt'):
input_file = os.path.join(input_folder, filename)
output_file = os.path.join(output_folder, filename[:-4] + '.docx') # 去掉.txt后缀,添加.docx后缀
txt_to_word(input_file, output_file)
if __name__ == "__main__":
input_folder = 'TXT文件来源路径' # 放置TXT文件的文件夹路径
output_folder = '转换文件保存路径' # 目标Word文件存放的文件夹路径
convert_folder_txt_to_word(input_folder, output_folder)
然后就转化好了