Я пишу код для открытия PDF-файла, выберите количество страниц для обрезки, а затем создайте новый обрезанный файл.Python: EasyGui зависает с fileopenbox()
Вот код:
from easygui import *
from pyPdf import PdfFileReader, PdfFileWriter
# 1 select a inputfile
inputFileName = fileopenbox('Please choose a PDF file','', '*.pdf')
#2 total pages
inputFile = PdfFileReader(file(inputFileName, 'rb'))
totalPages = inputFile.getNumPages()
#3 Enter beginning Page
begPage = enterbox('Please choose the Beginning Page','it must a number')
while not begPage.isdigit() or begPage ==0 or int(begPage) > totalPages:
msgbox('Please enter a valid digit', '', 'ok')
begPage = enterbox('Please choose the Beginning Page','it must a number')
Дела в том, во время тестирования этих первых шагов. Когда я выбираю файл и нажимаю OK, fileopenbox
зависает, и я не могу перейти к следующему шагу.
Если я изолирую первый шаг или шаги 1 и 2, он работает нормально, но я не могу заставить его работать с остальной частью скрипта (шаг 3).
Я использую Python 2.7.10 на моем MacBookPro OSX 10.9.2 и easygui 0,97
Ваш код работает отлично для меня. Возможно, ваш файл неверен - вы пробовали несколько файлов? Постскриптум 'begPage == 0' должен быть' int (begPage) == 0' Python 2.7.10, easygui 0.97, Win7 – SiHa
Может быть проблемой пути - это 'inputFileName', возвращающий полный путь к документу? Он работает в моей системе, но OSX может отличаться. – SiHa
Я пробовал с разными файлами, но он все еще зависает. 'InputFileName' возвращает полный путь. Я «нажимал» на разные вещи, пытаясь исправить эту проблему, и выяснил, что если я нажму на значок питона в своей панели инструментов, сценарий разморозит и перейдет к следующему шагу (2 и 3) .... но это происходит только с 'fileopenbox', остальные поля запрашивают автоматически ... PS Спасибо за исправление 'begPage == 0'. – Ruseiro