Python Glossary English

все Python 3osфункция

os.path.samefile

os.path — метаданные (stat)

Проверяет, ссылаются ли два пути на один и тот же файл (по устройству и inode).

Синтаксис

os.path.samefile(p1, p2)

Распознаёт один файл под разными именами: жёсткие ссылки, символические ссылки, пути с '..' и разным регистром. Это надёжнее сравнения строк путей. Оба пути должны существовать, иначе поднимется FileNotFoundError. Полезна, например, чтобы не скопировать файл сам в себя.

Примеры

import os
print(os.path.samefile(os.__file__, os.__file__))   # → True
same = os.path.join(os.path.dirname(os.__file__), '.', os.path.basename(os.__file__))
print(os.path.samefile(os.__file__, same))   # → True
print(os.__file__ == same)   # → False (строки разные, а файл один и тот же)
print(os.path.samefile(os.__file__, os.path.dirname(os.__file__)))   # → False (файл и его каталог — разные объекты ФС)
print(os.path.samefile('нет-такого', os.__file__))   # → FileNotFoundError

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности