python合并word

python合并word,第1张

合并多个 word文件到 一个文件 中,用于文件的批量打印。

要求:

采用 python 实现,使用python中的 python-docx 和 docxcompose 结合的方式来实现此功能。

优点:

缺点:

​只支持docx 文件的合并, 不支持doc文件 。如想通过此模式合并doc文件,需将doc文档转换为docx文档。

将一个文件夹中的所有文件,都合并到一个文档中。

要求每个文档,都从一个新页面开始,因此需在除第一个文档的每个文档前面加上 分页符 ,所以单独定义了一个只包含分页符的文档 page_break_doc 。

部分情况下会出现问题,如文档当前已经到 最后一行 了,新加的分页符会导致生成一页空白的文件, 此种情况,后续更新此文章时解决

定义目标文档带闭,初始化时,采用 target_doc = Document(source_file_path_list[0]) 的方式,以第一个要拼接的文档作为初始文档。

主要是因为,如果创建的空的文档 target_doc = Document() ,新生成的文档中 自带的文档样式 (如标题样式、正文样式等) 将会影响新拼接的笑衡文档中的采用了默认样式的内容 ,故模板文档从第一个文档中进行加载默认样式,避免了这种情况。

这也是网上大多数采用此种方式合并word,样式发生变更的原因 ,需注意此问题。

同时需注意,如果拼接的文档中,存在默认格式不一样,并且未为段落、文字指定单独样式的情况时,需检查,第一个文件作为模板加载碰行做的默认样式, 是否会影响后续的其他文件合并后的默认样式 。

200个文件合并,耗时10秒左右。速度非常快

python脚本的程序,其他程序可以直接通过 命令行的形式调用 ,或者python提供http接口,程序通过 http接口调用 。

切记通过http接口调用其他程序是,需设置好调用超时时间,防止无限等待请求结果,导致负载均衡时,大量请求超时而导致的程序整体不再分发请求。

1,不知道你这个脚本是在唤乎前什么顷知路径下执行的,os.getcwd获取的是当前运行环境下的当前路径。。。。不是脚本和清所在路径。。。所以你不同使用方法下,会有不同的表现。。最好是用获取当前脚本所在目录。。。二,os.getcwd会把当前目录下所有文件都拿到,各种奇奇怪怪隐藏的文件都会拿到。。。最好是做一些过滤。。。。。另外,python很好调试,怀疑哪里直接打印出来都行。。有ide还可以设置断点看状态

把所有的这些txt文件放到一个文件夹里

打开cmd, 进入到这个放了多个txt的文件夹, 运行命令copy *.txt all.txt

在该文件夹下创建一个python脚本 1.py, 将下列代码复制进去

# coding=utf-8

# using python27

file_path = 'all.txt'

with open(file_path, 'r') as f:

    card_informations = map(lambda x: x.strip().split('\t'), f.readlines())

for i in range(len(card_informations)):

    number = card_informations[i][0]

    if len(number)<10:

        card_informations[i][0] += '0'  # 给小于十位的加上0

# 剔除重复数据

result = []

for i in card_informatios:

    if i not in result:

     培姿源   result.append(i)

# 写入新配态文件

with open('result.txt', 'w+') as f:

    for i in range(len(result)):

        f.write(result[i][0]+'\t'+result[i][1]+'\n)

4. 运行该脚本, 然后该文件夹下就会多出一个result.txt的文件, 里面放的就册模是去重完之后的所有卡信息.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8151046.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存