Как обрабатывать файлы нескольких типов в PySimpleGUI: методы и примеры

Для обработки нескольких типов файлов в PySimpleGUI вы можете использовать элемент FileBrowseи указать типы файлов с помощью параметра file_types. Вот несколько методов, которые вы можете использовать:

  1. Метод 1. Использование списка расширений файлов:
    import PySimpleGUI as sg
    layout = [[sg.Text('Select files')],
          [sg.Input(key='-FILES-'), sg.FileBrowse(file_types=(("Text Files", "*.txt"), ("CSV Files", "*.csv")))],
          [sg.Button('OK')]]
    window = sg.Window('File Selection', layout)
    while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    if event == 'OK':
        file_path = values['-FILES-']
        # Process the selected file
        print(f'Selected file: {file_path}')
    window.close()

В приведенном выше примере параметр file_typesимеет значение кортежа типов файлов. Каждый тип файла указывается с помощью пары значений: описания и расширения файла.

  1. Метод 2. Использование подстановочного знака:
    import PySimpleGUI as sg
    layout = [[sg.Text('Select files')],
          [sg.Input(key='-FILES-'), sg.FileBrowse(file_types=(("All Files", "*.*"),))],
          [sg.Button('OK')]]
    window = sg.Window('File Selection', layout)
    while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    if event == 'OK':
        file_path = values['-FILES-']
        # Process the selected file
        print(f'Selected file: {file_path}')
    window.close()

В приведенном выше примере параметр file_typesимеет значение кортежа с одной записью, использующей подстановочный знак *.*. Это позволяет выбрать любой тип файла.

  1. Метод 3. Использование нескольких элементов FileBrowse:
    import PySimpleGUI as sg
    layout = [[sg.Text('Select files')],
          [sg.Input(key='-FILE1-'), sg.FileBrowse(file_types=(("Text Files", "*.txt"),))],
          [sg.Input(key='-FILE2-'), sg.FileBrowse(file_types=(("CSV Files", "*.csv"),))],
          [sg.Button('OK')]]
    window = sg.Window('File Selection', layout)
    while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    if event == 'OK':
        file_path1 = values['-FILE1-']
        file_path2 = values['-FILE2-']
        # Process the selected files
        print(f'Selected files: {file_path1}, {file_path2}')
    window.close()

В этом примере используются два элемента FileBrowse, для каждого из которых указан свой тип файла.

Эти методы позволяют выбирать несколько типов файлов с помощью PySimpleGUI. Не стесняйтесь выбирать метод, который лучше всего соответствует вашим потребностям.