Если у меня есть открытый файл, существует ли вызов os для получения полного пути в виде строки?
f = open('/Users/Desktop/febROSTER2012.xls')
Из f, как бы я получил "/Users/Desktop/febROSTER2012.xls"?
Ответ 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/'
Таким образом вы можете получить структуру каталогов.