驚呆同事的自動化小工具來了!Python 批次將 PDF 轉 Word

一、實現效果

二、環境準備

pip install PySimpleGUI
pip install pyinstaller

三、程式碼實現

from pdf2docx import Converter
import PySimpleGUI as sg


def pdf2word(file_path):
file_name = file_path.split('.')[0]
doc_file = f'{file_name}.docx'
p2w = Converter(file_path)
p2w.convert(doc_file, start=0, end=None)
p2w.close()
return doc_file
def main():
# 选择主题
sg.theme('LightBlue5')
# 设置窗口
layout = [
[sg.Text('pdfToword', font=('微软雅黑', 12)),
sg.Text('', key='filename', size=(50, 1), font=('微软雅黑', 10), text_color='blue')],
[sg.Output(size=(80, 10), font=('微软雅黑', 10))],
[sg.FilesBrowse('选择文件', key='file', target='filename'), sg.Button('开始转换'), sg.Button('退出')]]
# 创建窗口
window = sg.Window("Python与数据分析_青青", layout, font=("微软雅黑", 15), default_element_size=(50, 1))
# 事件循环
while True:
# 窗口的读取,有两个返回值(1.事件;2.值)
event, values = window.read()
print(event, values)

if event == "开始转换":
# 单个文件
if values['file'] and values['file'].split('.')[1] == 'pdf':
filename = pdf2word(values['file'])
print('文件个数 :1')
print('\n' + '转换成功!' + '\n')
print('文件保存位置:', filename)
# 多个文件
elif values['file'] and values['file'].split(';')[0].split('.')[1] == 'pdf':
print('文件个数 :{}'.format(len(values['file'].split(';'))))
for f in values['file'].split(';'):
filename = pdf2word(f)
print('\n' + '转换成功!' + '\n')
print('文件保存位置:', filename)
else:
print('请选择pdf格式的文件哦!')
if event in (None, '退出'):
break

window.close()
main()

四、打包程式碼

  • p 新增搜尋路徑

五、解決 exe 檔案過大問題【可略】

from ··· import * 
改成 import 包名

擴充套件連結

文章推薦

--

--

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
數據分析那些事

數據分析那些事

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/