Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 13, 2016 13:23:24

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Работа с файлами (выбор директории)

Добрый день.

Нужно открыть текстовый файл:

def opendb():
fopendialog=Open(master=mainframe, initialdir='C:\\', title='Select DB file', filetypes=[('text files', '*.txt')])
fopenshow=fopendialog.show()

Абсолютны путь в initialdir работает корректно, открывает диск C:\\
Если initialdir убрать, откроет директорию в которой находится файл .py

Как открыть директорию по относительному пути, например папку folder находящуюся рядом с файлом .py?



Офлайн

#2 Сен. 14, 2016 02:03:04

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9992
Репутация: +  857  -
Профиль   Отправить e-mail  

Работа с файлами (выбор директории)

Попробуй написать folder вместо C:\\



Офлайн

#3 Сен. 14, 2016 08:30:45

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Работа с файлами (выбор директории)

Открывает директорию с .py



Офлайн

#4 Сен. 14, 2016 10:06:29

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9992
Репутация: +  857  -
Профиль   Отправить e-mail  

Работа с файлами (выбор директории)

Можешь через os.getcwd() получить текущий каталог, а через os.path.join() присоединить к нему folder.



Офлайн

#5 Сен. 14, 2016 12:38:08

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Работа с файлами (выбор директории)

Спасибо

 def f_open():
    fopendialog=askopenfilename(master=mainframe, initialdir=os.path.join(os.getcwd()+'\\db'), title='Select DB file', filetypes=[('text files', '*.txt')])



Офлайн

#6 Сен. 14, 2016 13:19:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9992
Репутация: +  857  -
Профиль   Отправить e-mail  

Работа с файлами (выбор директории)

Ubhra
 os.path.join(os.getcwd()+'\\db')
  
os.path.join(os.getcwd(), 'db')
На разных системах может быть разный разделитель путей, поэтому используется os.path.join(), которая знает, каким разделителем соединять. А для разделения используется os.path.split() с той же целью.



Отредактировано py.user.next (Сен. 14, 2016 13:19:55)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version