|
发表于 2023-6-8 19:26:49
|
显示全部楼层
本帖最后由 楪祈53409 于 2023-6-8 19:30 编辑
你好,我对你的代码进行了维护,修改了部分被废弃的函数.
我在py3.0上运行的,初次运行没安装库的先win+r分别运行和
安装所需的库.
以下是我维护好的代码:
- import glob
- import PySimpleGUI as sg
- from PyPDF2 import PdfWriter, PdfReader
- fra1 = sg.Frame('打开文件夹', [[sg.InputText(key='-IN-'), sg.FolderBrowse('文件位置')], [sg.Button('确认')]])
- fra2 = sg.Frame('文件列表', [[sg.Listbox(values=[''], size=(54, 30), key='-LIST-')],
- [sg.Button('上移'), sg.Button('下移'), sg.Button('移除'), sg.Button('合并')]])
- col = sg.Column([[fra1], [fra2]], pad=(0, 0))
- layout = [[col]]
- window = sg.Window('合并PDF', layout, keep_on_top=True)
- filename = []
- while True:
- event, value = window.read()
- if event is None:
- break
- elif event == '确认':
- if value['-IN-'] != '':
- path = value['-IN-'] + '/*.pdf'
- file = glob.glob(path)
- if file:
- filefolder = file[0].split('\\')[0] + '/'
- filename = [i.split('\\')[-1] for i in file]
- window['-LIST-'].update(filename)
- else:
- sg.popup_ok('文件夹内未识别到PDF文件~', title='错误', keep_on_top=True)
- else:
- sg.popup_ok('请选择文件夹~', title='错误', keep_on_top=True)
- elif event == '上移':
- try:
- choice = value['-LIST-']
- index = filename.index(choice[0])
- filename[index], filename[index-1] = filename[index-1], filename[index]
- window['-LIST-'].update(filename)
- except NameError:
- pass
- elif event == '下移':
- try:
- choice = value['-LIST-']
- index = filename.index(choice[0])
- filename[index], filename[index+1] = filename[index+1], filename[index]
- window['-LIST-'].update(filename)
- except NameError:
- pass
- except IndexError:
- pass
- elif event == '移除':
- try:
- choice = value['-LIST-'][0]
- filename.remove(choice)
- window['-LIST-'].update(filename)
- except NameError:
- pass
- except IndexError:
- pass
- elif event == '合并':
- try:
- if filename:
- file = [filefolder + i for i in filename]
- pdfFileWriter = PdfWriter()
- for pdf in file:
- pdfReader = PdfReader(open(pdf, 'rb'))
- for page in pdfReader.pages:
- pdfFileWriter.add_page(page)
- folder = sg.popup_get_folder('请选择文件保存位置:', title='提示', keep_on_top=True)
- with open(folder + '/合并文件.pdf', 'wb') as output_pdf:
- pdfFileWriter.write(output_pdf)
- sg.popup_ok('文件已合并完成~', keep_on_top=True)
- except NameError:
- pass
- window.close()
复制代码
|
|