Получить путь из открытого файла в Python - PullRequest
89 голосов
/ 03 марта 2012

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

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

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

Ответы [ 4 ]

117 голосов
/ 03 марта 2012

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

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

Помогает ли?

70 голосов
/ 10 августа 2016

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

>>> import os
>>> f = open('file.txt')
>>> os.path.realpath(f.name)
11 голосов
/ 03 марта 2012

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

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

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

2 голосов
/ 25 января 2018

Вы можете получить это так же.

filepath = os.path.abspath(f.name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...