[파이썬] os `os.path.samefile()`를 사용한 파일 동일성 확인

파이썬에서 파일 동일성을 확인해야 할 때가 있습니다. 예를 들어, 두 개의 파일이 같은 파일인지 확인하거나, 파일이 존재하는지 확인하기 위해 동일성을 확인해야 할 수 있습니다. 이를 위해 os.path.samefile() 함수를 사용할 수 있습니다.

os.path.samefile(file1, file2) 함수는 file1file2의 심볼릭 링크 및 상대 경로 등을 제외하고 파일의 실제 경로를 기준으로 동일성을 확인합니다. 즉, 파일이 같은 파일 시스템의 동일한 위치에 저장되어 있는지 확인합니다.

아래는 os.path.samefile() 함수를 사용하여 파일 동일성을 확인하는 간단한 예제입니다.

import os

file1 = "/path/to/file1.txt"
file2 = "/path/to/file2.txt"

if os.path.samefile(file1, file2):
    print("두 파일은 동일한 파일입니다.")
else:
    print("두 파일은 다른 파일입니다.")

이 예제에서는 file1file2 경로를 비교하여 동일한 파일인지 확인합니다. os.path.samefile() 함수는 파일 경로를 비교하여 결과에 따라 적절한 메시지를 출력합니다.

주의할 점은 os.path.samefile() 함수는 파일이 실제로 존재하는지 확인하지 않습니다. 단지 파일 경로를 기준으로 동일성을 확인할 뿐입니다. 파일의 존재 여부를 확인하려면 os.path.exists() 함수와 함께 사용해야 합니다.

import os

file1 = "/path/to/file1.txt"
file2 = "/path/to/file2.txt"

if os.path.exists(file1) and os.path.exists(file2):
    if os.path.samefile(file1, file2):
        print("두 파일은 동일한 파일입니다.")
    else:
        print("두 파일은 다른 파일입니다.")
else:
    print("파일이 존재하지 않습니다.")

위의 예제에서는 os.path.exists()를 사용하여 파일이 존재하는지 확인한 후에 os.path.samefile() 함수를 사용하여 파일 동일성을 확인합니다. 이를 통해 두 개의 파일이 모두 존재하고 동일한 파일인 경우에만 결과를 출력합니다.

os.path.samefile() 함수는 파일 동일성 확인에 유용한 기능을 제공합니다. 파일의 실제 경로를 기준으로 두 파일이 동일한지 확인할 수 있으며, 심볼릭 링크나 상대 경로 등은 고려하지 않습니다. 따라서 파일 처리에 필요한 정확성과 신뢰성을 보장하고자 할 때 사용할 수 있습니다.