Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 8, 2018 12:06:33

olesyakolesova
Зарегистрирован: 2018-08-08
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Очень срочно! Диалоговое окно выбора директории

Как сделать чтобы код работал и на python 2 и на 3?
Python 2:
from tkFileDialog import askdirectory
dir_path=askdirectory()
Python 3:
from tkinter.filedialog import askdirectory
dir_path=askdirectory()
Чтобы работало и там и там приходится комментировать/раскоментировать строку подключения, это не удобно, как сделать чтобы и там и там все работало и вызывалось окно выбора директории?

Офлайн

#2 Авг. 8, 2018 13:37:35

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

Очень срочно! Диалоговое окно выбора директории

 try:
    from tkFileDialog import askdirectory  # py2
except ImportError:
    from tkinter.filedialog import askdirectory
dir_path = askdirectory()
??, разве не так?



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#3 Авг. 8, 2018 15:05:49

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Очень срочно! Диалоговое окно выбора директории

можно через тру-ексепт, а можно помотреть версию пайтона из самого скрипта,

 import sys
print(sys.version_info.major)
import platform
print(platform.python_version())
>>> 
3
3.2.5
>>> 
и уже потом писать чето типа
 if py_version < 3 :
    #пишем код для второго
else:
     # пишем код для третьего
   



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#4 Авг. 10, 2018 06:32:35

olesyakolesova
Зарегистрирован: 2018-08-08
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Очень срочно! Диалоговое окно выбора директории

try/except или if/else в любом случае не работает, он ругается на строку с неправильным подключением, так как не знает что такое tkinter или tkFileDialog в зависимости от версии

Офлайн

#5 Авг. 10, 2018 12:40:07

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Очень срочно! Диалоговое окно выбора директории

olesyakolesova
try/except или if/else в любом случае не работает, он ругается на строку с неправильным подключением, так как не знает что такое tkinter или tkFileDialog в зависимости от версии
скуяли ему не работать? неоднократно так делал, все работает как часы при условии что нужные модули установлены.
 import sys
if sys.version_info.major < 3 :
    from tkFileDialog import askdirectory
else:
    from tkinter.filedialog import askdirectory
dir_path = askdirectory()

Если чтото не работает то код и ошибку в студию, будем смотреть.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#6 Фев. 19, 2019 12:02:41

seregka174
Зарегистрирован: 2015-02-03
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Очень срочно! Диалоговое окно выбора директории

Что бы новую тему не создавать подскажите:
я вызываю окно выбора папки из консоли, после выбора папки остается открытое пустое окошечко tk как его убрать?
и как сделать что бы по умолчанию в выборе открывался не текущая директория а нужная мне?



После знакомства с Linux заколотил все форточки.

Отредактировано seregka174 (Фев. 19, 2019 12:15:15)

Офлайн

#7 Фев. 19, 2019 12:13:53

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Очень срочно! Диалоговое окно выбора директории

seregka174
я вызываю окно выбора папки из консоли, после выбора папки остается открытое пустое окошечко tk как его убрать?
у tk есть особенность, там всегда должно быть root окно(инстанс Tk()), когда вы вызываете filedialog, оно само создает root если такового нет, по другому оно не умеет.
тут приведено решение для pygame:
http://python.su/forum/topic/36741/?page=1#post-199108
думаю оно должно подойти и вам.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#8 Фев. 19, 2019 17:01:42

seregka174
Зарегистрирован: 2015-02-03
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Очень срочно! Диалоговое окно выбора директории

как сделать что бы по умолчанию в выборе открывался не текущая директория а нужная мне?



После знакомства с Linux заколотил все форточки.

Офлайн

#9 Фев. 20, 2019 09:44:43

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Очень срочно! Диалоговое окно выбора директории

seregka174
как сделать что бы по умолчанию в выборе открывался не текущая директория а нужная мне?
указать ее(нужную юиректорию) передав аргуметом
 ...
answer = askdirectory(initialdir = "c:")
...



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Фев. 20, 2019 09:45:02)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version