一、PDF批量合并
1、文件准备
1、将需要合并的PDF文放到一个文件夹下并做好备份。
2、安装好PyPDF2库,终端输入命令
pip3 install PyPDF2
2、代码
import os
from PyPDF2 import PdfFileMerger
path = '/Users/zero/Desktop/2016' #pdf目录文件路径
listname = os.listdir(path) #获取所有pdf文件名
get_key = lambda i : i.split('.')[0] #调整listdir的(数字排列)顺序
new_sort = sorted(listname, key=get_key)
pdf_lst = [f for f in new_sort if f.endswith('.pdf')]
pdf_lst = [os.path.join(path, filename) for filename in pdf_lst]
file_merger = PdfFileMerger()
for pdf in pdf_lst:
file_merger.append(open(pdf, 'rb')) # 合并pdf文件
a = '/Users/zero/Desktop/2016.pdf' # 创建一个2016.pdf文件作为最终合并文件。
with open(a, "wb") as fout:
file_merger.write(fout)
*代码文件(也就是.py文件)不放在pdf文件夹中
3、注意事项
关于系统路径:
在 Windows 操作系统上,路径的写法采用的是 \ 反斜杠。
在 macOS 和 Linux 操作系统上,路径的写法采用的是 / 正斜杠。
Python 中 “\”是转义符,如果继续用windows的“\”表示文件路径,就会产生歧义。
例如:Windows下的原始路径:C:\Users\Documents\GitHub\
在Python中有三种方法表示:
path = "C:\\Users\\Documents\\GitHub\\"
path = r'C:\Users\Documents\GitHub\'
path = 'C:/Users/Documents/GitHub/'
或者也可以用vscode打开所在文件夹后直接获取当前路径
path = os.getcwd() #获取当前工作路径
os.listdir排列的顺序是按照:1,10,2,20…的顺序,需要调整成按照01,02,03,04…进行排序
*如果pdf文件以数字序号命名,请将文件名1-9改为01-09。
二、PDF批量转word文件
1、文件准备
1、将需要转成word文档的PDF文件放到一个文件夹下,做好备份。
2、安装pdf2docx库,用pip或者pip3
pip install pdf2docx
3、新建py文件
2、代码
import os
from pdf2docx import Converter
def pdf_docx():
file_path = os.getcwd()# 获取当前工作目录
for file in os.listdir(file_path): # 遍历所有文件
suff_name = os.path.splitext(file)[1] # 获取后缀
if suff_name != '.pdf': # 过滤文件夹中的非pdf格式文件
continue
file_name = os.path.splitext(file)[0]# 获取文件名称
pdf_name = os.getcwd() + '/' + file #mac用'/',Windows用'\\'
docx_name = os.getcwd() + '/' + file_name + '.docx' #转换为docx文件
# 加载pdf文档并转换
cv = Converter(pdf_name)
cv.convert(docx_name)
cv.close()
pdf_docx()
3、运行效果