Python-批量处理Word转PDF
使用Python批量处理Word转PDF
1. 安装依赖
pip安装pywin32库
pip install pywin32
2. 代码实现
from win32com.client import constants, gencache
import os # 目录的操作
import time
def createpdf(wordPath, pdfPath):
word = gencache.EnsureDispatch('Word.Application')
doc = word.Documents.Open(wordPath, ReadOnly=1)
# 转换方法
doc.ExportAsFixedFormat(pdfPath, constants.wdExportFormatPDF)
word.Quit()
start_time = time.time() # 起始时间
count = 0
# 多个文件的转换
print(os.listdir('.')) # 当前文件夹下的所有文件
wordfiles = []
for file in os.listdir('.'):
if file.endswith(('.doc', '.docx')): # 通过后缀找出所有的workd文件
wordfiles.append(file)
print(wordfiles)
for file in wordfiles:
# 获取文件路径
old_time = time.time()
filepath = os.path.abspath(file)
index = filepath.rindex('.')
# 通过截取获取pdfpath
pdfpath = filepath[:index]+'.pdf'
# print(pdfpath)
createpdf(filepath, pdfpath)
now_time = time.time()
count += 1
print(count, pdfpath, f"处理时长:{str(now_time-old_time)}s")
end_time = time.time() # 结束时间
print(f"共处理文件{len(wordfiles)}件, 共花费时间{str(end_time-start_time)}s")
在word文件目录内运行python文件实现批量word转pdf。
3. 程序打包
安装打包库
pip install pyinstaller
# 打包命令
Pyinstaller -F setup.py 打包exe
Pyinstaller -F -w setup.py 不带控制台的打包
Pyinstaller -F -i xx.ico setup.py 打包指定exe图标打包
运行后在dist目录中找到exe程序
4. 随笔总结
Python处理一份文件的时间大约在3~10s不等,效率方面较为一般,但总比手工好太多了。拓展性方面也还有更大空间,且目前来说仅在Windows上可以使用,在Linux上需要下载LibreOffice,稍微复杂一些。
5. 参考链接
Python实现word转pdf
Python中记录程序运行时间
Python程序打包成exe
Python程序打包成.exe(史上最全面讲解)