Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 01.02.2023
Сообщений: 2

tkinter filedialog.askopenfilenames

01.02.2023, 05:18. Показов 1061. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю приложение с 2 кнопочками:
1 Выбрать файлы.
2 Обработать файлы

Проблема возникает когда я хочу получить имена файлов после выполнения filedialog.askopenfilenames. После выхода из функции chose_file() , не могу сохранить в переменную , то что она возвращает, те, список файлов. Памагите.


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import tkinter as tk
import tkinter.filedialog as fd
 
 
 
def go(a):            # РАБОЧАЯ ФУНКЦИЯ
        print('lalala')
 
def chose_file():         #ФУНКЦИЯ ВЫБОРА ФАЙЛОВ
        filelist = fd.askopenfilenames(multiple=True, title='Выберите UVI файлы', initialdir='C:/UVI')
        return filelist
 
def start(filelist):      #ЗАПУСК ЦИКЛА ПО РАБОЧЕЙ ФУНКЦИИ ПО ИМЕНАМ ФАЙЛОВ
    for i in list:
            print(i)
 
window = tk.Tk()
 
opts = {'padx': 40, 'pady': 5, 'expand': True, 'fill': tk.BOTH}
 
chose = tk.Button(text='ВЫБЕРИТЕ ФАЙЛЫ', command=chose_file)
chose.pack(**opts)
 
start = tk.Button(text='Обработать ФАЙЛЫ', command=start(filelist)
start.pack(**opts)
 
window.mainloop()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.02.2023, 05:18
Ответы с готовыми решениями:

Как сделать так, чтобы при использовании модуля из tkinter не открывалось окно tkinter?
Как сделать так, чтобы при использовании модуля из tkinter не открывалось окно tkinter? Я пишу приложение на kivy но использую ...

Виджеты tkinter и tkinter.ttk (используется Python 3.5.2)
1) Проблема с виджетом Scale (ползунок) модуля tkinter. Я создал ползунок от 1 до 50 (как на первой картинке). По умолчанию стоит на 1....

filedialog.askopenfile filetypes
Имеется диалог для поиска файлов Выделить всёPython path = filedialog.askopenfile( ...

4
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
01.02.2023, 10:31
GauriTR, изучай тему про "область видимости переменных"

Добавлено через 1 минуту
P.S. все функции обратного вызова - должны быть процедурами.
0
0 / 0 / 0
Регистрация: 01.02.2023
Сообщений: 2
01.02.2023, 14:32  [ТС]
А можно поподробнее, я в питоне чайник вообще? Спасибо
0
 Аватар для OlegChe
73 / 55 / 25
Регистрация: 12.07.2014
Сообщений: 216
01.02.2023, 15:46
Вы можете сохранить возвращенные значения из функции chose_file() в глобальную переменную. Но у вас есть другой вопрос: вы вызываете функцию start(filelist) при создании кнопки start, вместо того, чтобы указать ее как команду при нажатии на кнопку.

Обновленный код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import tkinter as tk
import tkinter.filedialog as fd
 
def go(a):            # РАБОЧАЯ ФУНКЦИЯ
        print('lalala')
 
def chose_file():         #ФУНКЦИЯ ВЫБОРА ФАЙЛОВ
        filelist = fd.askopenfilenames(multiple=True, title='Выберите UVI файлы', initialdir='C:/UVI')
        return filelist
 
def start():      #ЗАПУСК ЦИКЛА ПО РАБОЧЕЙ ФУНКЦИИ ПО ИМЕНАМ ФАЙЛОВ
    filelist = chose_file()
    for i in filelist:
            print(i)
 
window = tk.Tk()
 
opts = {'padx': 40, 'pady': 5, 'expand': True, 'fill': tk.BOTH}
 
chose = tk.Button(text='ВЫБЕРИТЕ ФАЙЛЫ', command=chose_file)
chose.pack(**opts)
 
start = tk.Button(text='Обработать ФАЙЛЫ', command=start)
start.pack(**opts)
 
window.mainloop()
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
01.02.2023, 16:30
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import tkinter as tk
import tkinter.filedialog as fd
 
 
class Frame(tk.Frame):
 
    def __init__(self, master: tk.Misc = None):
        tk.Frame.__init__(self, master)
 
        self.filelist = ("", )
 
        opts = {'padx': 40, 'pady': 5, 'expand': True, 'fill': tk.BOTH}
 
        self.choseButton = tk.Button(text='ВЫБЕРИТЕ ФАЙЛЫ', command=self.choseButtonClicked)
        self.choseButton.pack(**opts)
 
        self.startButton = tk.Button(text='Обработать ФАЙЛЫ', command=self.startButtonClicked)
        self.startButton.pack(**opts)
 
    def choseButtonClicked(self) -> None:
        self.filelist = fd.askopenfilenames(multiple=True, title='Выберите UVI файлы', initialdir='C:/UVI')
 
    def startButtonClicked(self) -> None:
        for i in self.filelist:
            print(i)
 
 
if __name__ == "__main__":
    window = tk.Tk()
    frame = Frame(window)
    window.mainloop()
Добавлено через 1 минуту

Не по теме:

P.S. Самая серьезная работа написанная на ткинтере!

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.02.2023, 16:30
Помогаю со студенческими работами здесь

tkinter
Используя справочную литературу, изучить модуль tkinter. Реализовать класс из предыдущего задания, используя оконный интерфейс и кнопки. ...

Tkinter
Есть функция def button_clicked(event): weight = entry1.get() height = entry2.get() intweight = int(weight) ...

Tkinter
Помогите пожалуйста, должно выйти окно, но я не могу понять что писать в modele.

Библиотека tkinter
Добрый день. Подскажите пожалуйста, как создать основное окно приложения с ФИКСИРОВАННЫМ размером, т.е. что бы нельзя было растягивать его...

tkinter теги
Имеем такой код: from tkinter import * root=Tk() def command(event): print(c.find_withtag(CURRENT)) c=Canvas()


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru