как найти конечный файл полным (полный путь) символьной ссылки или гибкой ссылки в Python

когда я даю ls-l/etc/fonts/conf.d/70-yes-bitmaps.conf

lrwxrwxrwx <snip> /etc/fonts/conf.d/70-yes-bitmaps.conf -> ../conf.avail/70-yes-bitmaps.conf

таким образом для символьной ссылки или гибкой ссылки, как найти конечный файл полным (полный путь) в Python,

Если я использую

os.readlink('/etc/fonts/conf.d/70-yes-bitmaps.conf')

это производит

../conf.avail/70-yes-bitmaps.conf

но мне нужен полный путь не относительный путь, таким образом, мой желаемый вывод должен быть,

/etc/fonts/conf.avail/70-yes-bitmaps.conf

как заменить .. с фактическим полным путем родительского каталога символьной ссылки или файла гибкой ссылки.

59
задан duhhunjonn 10 July 2010 в 20:36
поделиться

2 ответа

http://docs.python.org/library/os.path.html#os.path.abspath

также joinpath и normpath, в зависимости от того, находитесь ли вы в текущем рабочем каталоге или работаете с чем-то в другом месте. normpath может быть более прямым для вас.

Обновление:

специально:

os.path.normpath( 
  os.path.join( 
    os.path.dirname( '/etc/fonts/conf.d/70-yes-bitmaps.conf' ), 
    os.readlink('/etc/fonts/conf.d/70-yes-bitmaps.conf') 
  ) 
)
8
ответ дан 24 November 2019 в 18:15
поделиться
os.path.realpath(path)

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

106
ответ дан 24 November 2019 в 18:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: