Подтвердить что ты не робот

Получить путь из открытого файла в Python

Если у меня есть открытый файл, существует ли вызов os для получения полного пути в виде строки?

f = open('/Users/Desktop/febROSTER2012.xls')

Из f, как бы я получил "/Users/Desktop/febROSTER2012.xls"?

4b9b3361

Ответ 1

Ключевым здесь является атрибут name объекта f, представляющий открытый файл. Вы получите следующее:

>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> f.name
'/Users/Desktop/febROSTER2012.xls'

Помогает ли это?

Ответ 2

У меня была такая же проблема. Если вы используете относительный путь, то os.path.dirname(path) возвращает только относительный путь. os.path.realpath выполняет трюк:

>>> import os
>>> f = open('file.txt')
>>> os.path.realpath(f.name)

Ответ 3

И если вы просто хотите получить имя каталога и не хотите, чтобы имя файла появилось с ним, вы можете сделать это следующим образом, используя os модуль Python.

>>> import os
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> os.path.dirname(f.name)
>>> '/Users/Desktop/'

Таким образом вы можете получить структуру каталогов.