Найти - Пользователи
Полная версия: Очень срочно! Диалоговое окно выбора директории
Начало » Python для новичков » Очень срочно! Диалоговое окно выбора директории
1
olesyakolesova
Как сделать чтобы код работал и на python 2 и на 3?
Python 2:
from tkFileDialog import askdirectory
dir_path=askdirectory()
Python 3:
from tkinter.filedialog import askdirectory
dir_path=askdirectory()
Чтобы работало и там и там приходится комментировать/раскоментировать строку подключения, это не удобно, как сделать чтобы и там и там все работало и вызывалось окно выбора директории?
DamMercul
 try:
    from tkFileDialog import askdirectory  # py2
except ImportError:
    from tkinter.filedialog import askdirectory
dir_path = askdirectory()
??, разве не так?
PEHDOM
можно через тру-ексепт, а можно помотреть версию пайтона из самого скрипта,
 import sys
print(sys.version_info.major)
import platform
print(platform.python_version())
>>> 
3
3.2.5
>>> 
и уже потом писать чето типа
 if py_version < 3 :
    #пишем код для второго
else:
     # пишем код для третьего
   
olesyakolesova
try/except или if/else в любом случае не работает, он ругается на строку с неправильным подключением, так как не знает что такое tkinter или tkFileDialog в зависимости от версии
PEHDOM
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()

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

seregka174
Что бы новую тему не создавать подскажите:
я вызываю окно выбора папки из консоли, после выбора папки остается открытое пустое окошечко tk как его убрать?
и как сделать что бы по умолчанию в выборе открывался не текущая директория а нужная мне?
PEHDOM
seregka174
я вызываю окно выбора папки из консоли, после выбора папки остается открытое пустое окошечко tk как его убрать?
у tk есть особенность, там всегда должно быть root окно(инстанс Tk()), когда вы вызываете filedialog, оно само создает root если такового нет, по другому оно не умеет.
тут приведено решение для pygame:
http://python.su/forum/topic/36741/?page=1#post-199108
думаю оно должно подойти и вам.
seregka174
как сделать что бы по умолчанию в выборе открывался не текущая директория а нужная мне?
PEHDOM
seregka174
как сделать что бы по умолчанию в выборе открывался не текущая директория а нужная мне?
указать ее(нужную юиректорию) передав аргуметом
 ...
answer = askdirectory(initialdir = "c:")
...
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB