все 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Сообщить о неточности