[파이썬] shutil 파일 및 디렉토리의 메타데이터 다루기

파이썬 shutil 모듈은 파일 및 디렉토리 작업을 수행하는데 유용한 함수들을 제공합니다. 이 모듈을 사용하면 파일 및 디렉토리를 생성, 복사, 이동, 삭제 등 다양한 작업을 할 수 있습니다.

하지만 shutil 모듈은 파일 및 디렉토리의 메타데이터(예: 소유자, 권한 등)를 다루는 기능이 제한적입니다. 이번 블로그 포스트에서는 shutil 모듈을 사용하여 파일 및 디렉토리의 메타데이터를 다루는 방법에 대해 알아보겠습니다.

파일 및 디렉토리의 메타데이터 조회하기

파일이나 디렉토리의 메타데이터를 알고 싶을 때는 os.stat() 함수를 사용할 수 있습니다. 이 함수는 파일이나 디렉토리의 상세 정보를 담고 있는 os.stat_result 객체를 반환합니다.

import os

# 파일의 메타데이터 조회
stat_info = os.stat("파일 경로")
print(stat_info.st_mode)  # 파일 권한 정보 출력
print(stat_info.st_uid)  # 파일 소유자 정보 출력
print(stat_info.st_gid)  # 파일 그룹 정보 출력
print(stat_info.st_size)  # 파일 크기 출력
print(stat_info.st_atime)  # 파일 최근 접근 시간 출력
print(stat_info.st_mtime)  # 파일 최근 수정 시간 출력
print(stat_info.st_ctime)  # 파일 생성 시간 출력

# 디렉토리의 메타데이터 조회
stat_info = os.stat("디렉토리 경로")
print(stat_info.st_mode)  # 디렉토리 권한 정보 출력
print(stat_info.st_uid)  # 디렉토리 소유자 정보 출력
print(stat_info.st_gid)  # 디렉토리 그룹 정보 출력
print(stat_info.st_size)  # 디렉토리 크기 출력
print(stat_info.st_atime)  # 디렉토리 최근 접근 시간 출력
print(stat_info.st_mtime)  # 디렉토리 최근 수정 시간 출력
print(stat_info.st_ctime)  # 디렉토리 생성 시간 출력

파일 및 디렉토리의 메타데이터 수정하기

shutil 모듈을 사용하여 파일 또는 디렉토리의 메타데이터를 수정할 수는 없습니다. 메타데이터를 수정하려면 os.chown() 또는 os.chmod() 함수를 사용해야 합니다.

import os

# 파일 소유자 변경
os.chown("파일 경로", 소유자_UID, 그룹_GID)

# 파일 권한 변경
os.chmod("파일 경로", 권한_숫자)

# 디렉토리 소유자 변경
os.chown("디렉토리 경로", 소유자_UID, 그룹_GID)

# 디렉토리 권한 변경
os.chmod("디렉토리 경로", 권한_숫자)

결론

shutil 모듈은 파일 및 디렉토리 작업에 유용한 함수들을 제공하지만, 메타데이터 관련 기능은 제한적입니다. 파일이나 디렉토리의 메타데이터를 조회하려면 os.stat() 함수를 사용하고, 메타데이터를 수정하려면 os.chown() 또는 os.chmod() 함수를 사용해야 합니다. 따라서 복잡한 메타데이터 작업을 수행해야 할 경우, os 모듈을 활용하는 것이 더 효과적일 수 있습니다.

이상으로 shutil 파일 및 디렉토리의 메타데이터 다루기에 대해 알아보았습니다. 코딩하시는 분들에게 도움이 되길 바랍니다!