Функция Python, Pandas Tkinter иногда останавливается до ввода ключа - PullRequest
0 голосов
/ 04 января 2019

Я работаю над довольно длинным куском кода для автоматической генерации счетов. Данные хранятся на листе Excel и загружаются через панды через окно Tkinter (также выбран каталог сохранения).

Это работало нормально, пока я не попытался убрать вещи, внедрив вещи Tkinter / pandas в функцию, содержащую цикл while. Теперь, примерно в 50% случаев, окно консоли CMD зависает, если только не нажата клавиша, что приводит к путанице позже, когда есть 'input ()'.

Я бы очень хотел решить эту проблему, так как хочу развить сторону Tkinter, чтобы сделать ее более удобной для пользователя.

Вот две функции и их вызовы, я могу включить любые дополнительные фрагменты кода, которые будут сочтены необходимыми при необходимости. Обратите внимание, что есть цикл while, так как часто пользователь забывает закрыть лист Excel, и python не загружает его, поэтому появляется сообщение об ошибке, и пользователю предоставляется второй шанс.

def open_Info_Sheet():    
    while 1:
        print('PLEASE SELECT THE INVOICE INFORMATION SHEET')
        Tk().withdraw() 
        filename = askopenfilename(title='PLEASE SELECT THE INVOCE INFORMATION SHEET') # show an "Open" dialog box and return the path to the selected file

        try:
           df = pandas.read_excel(filename)
        except:
           print('--------------------------------------------------------')   
           print("||||||| FAILED TO OPEN INVOICE INFORMATION SHEET |||||||\n\n1) Did you select the correct file?\n2) Is the invoice sheet currently open?\n3) Did you close the pop-up window?\n")
           continue 
        break
    print("INVOICE INFORMATION SHEET LOADED")
    return df

def open_Directory():  
    while 1:
        Tk().withdraw() 
        savedirectory = askdirectory(title='PLEASE SELECT A FOLDER')
        if len(savedirectory) > 0:
            break    
        return savedirectory


savedirectory = open_Directory()
dirlist = os.listdir(savedirectory)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...