txt合并及txt批量转docx

**由于对文档进行处理的时候要把txt合并成一个文集,或者是txt转化为word文档进行保管,但是word有/点不好就是每次打开贼费时间(不排除我的机械硬盘太烂的可能),再加上每次打开txt,ctrl+c,ctrl+v,关闭txt,新建docx,重命名,ctrl+v,ctrl+s,关闭文件,如此反复,实在是太慢了,网上又没有看到现成的轮子,所以萌生了自己造个木头轮子的想法,下面是我这个大菜逼的代码,仅供参考.**话说百度云现在还不和谐docx呢。。

import docx
from docx.oxml.ns import qn
import os


root = './txt/'  # 相对路径
docxpath ='./txt/docx/'



# TODO 批量读取root下的文件名
def bulk_readname():
    fileNames = os.listdir(root)  # 读取文件夹下所有的txt的文件名
    txtFiles = []
    for i in range(len(fileNames)):
        if '.txt' in fileNames[i]:
            txtFiles.append(fileNames[i])
    # 看一下是不是全部都找到了
    print(txtFiles)
    return txtFiles  # 返回的是一个列表


# TODO 读取txt文件并以字符串格式返回
def bulk_read(input_fileName):
        path = root + input_fileName
        with open(path, encoding='utf-8') as f:
            str = f.read()
            # 下面注释的代码暂未测试(给str自动换行)
            # L = list(str)
            # for j in L:
            #     if j/50 == 0:
            #         L.insert(j, '/n')
            return str


# TODO 在一个txt内追加文本
def append_text(input_str, textName):
    with open(root+textName+'.txt', 'a+', encoding='utf-8') as f:  # 'a'是继续写入,'w'是刷新后写入,'a+'追加,可读可写
        f.write(input_str)
        output_str = f.read()
    return output_str


# TODO 创建docx文件并写入数据
def write_docx(input_str, buildFile):
    doc = docx.Document()
    # 设置正文中文字体
    microsoft_font = u'微软雅黑'  # u 表示后面的字符串以 Unicode 格式进行编码
    area = qn('w:eastAsia')
    doc.styles['Normal'].font.name = microsoft_font
    doc.styles['Normal']._element.rPr.rFonts.set(area, microsoft_font)
    paraObj1 = doc.add_paragraph(input_str)
    path = docxpath + buildFile + '.docx'
    doc.save(path)


# -------------------------------------------------------------------------------------------
def merge_file(name):
    # 合并文件
    fileNames = bulk_readname()
    for fileName in range(len(fileNames)):
        out = bulk_read(fileNames[fileName])
        append_text(out, name)


def bulk_RW():
    fileNames = bulk_readname()
    for fileName in range(len(fileNames)):
        out = bulk_read(fileNames[fileName])
        print(out)
        write_docx(out, fileNames[fileName][:-4])  # [:-4]消除.txt



if __name__ == '__main__':
    # 合并文件
    # merge_file('合集')
    # 实现批量txt2docx
    # bulk_RW()
    pass




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值