[파이썬] shutil `shutil.copy2()`와 타임스탬프 관리하기

파이썬의 shutil 모듈은 파일 및 디렉토리 관리를 위한 유용한 기능을 제공합니다. 그 중 shutil.copy2() 함수는 파일을 복사할 때 원본 파일의 타임스탬프를 보존하는 기능을 제공합니다.

타임스탬프는 파일의 생성 시간, 수정 시간 및 액세스 시간을 나타냅니다. 파일의 타임스탬프를 보존하는 것은 보안 검사나 버전 관리 시스템과 같은 상황에서 중요한 역할을 합니다. 이를 통해 원본 파일과 복사본 간의 일치를 보장하거나, 최신 정보를 정확하게 파악할 수 있습니다.

shutil.copy2() 함수의 사용법

다음은 shutil.copy2() 함수의 사용법에 대한 간단한 예시 코드입니다.

import shutil

# 원본 파일의 경로와 복사본 파일의 경로 설정
source_file = 'original.txt'
target_file = 'copy.txt'

# copy2() 함수를 사용하여 파일 복사
shutil.copy2(source_file, target_file)

shutil.copy2() 함수는 source_file로 지정한 원본 파일을 target_file로 지정한 복사본 파일로 복사합니다. 이때 원본 파일의 타임스탬프 정보가 복사본에 보존됩니다.

타임스탬프 관리 방법

shutil.copy2() 함수를 사용하여 파일을 복사할 때는 타임스탬프가 자동으로 복사되지만, 특정한 경우에는 타임스탬프를 수동으로 관리해야 할 수도 있습니다. 예를 들어, 원본 파일의 타임스탬프를 변경하지 않고 복사한 파일에 특정한 타임스탬프를 설정하려는 경우가 있을 수 있습니다.

shutil 모듈은 이러한 경우에 대비하여 다양한 파일 관리 함수를 제공합니다. 예를 들어, shutil.copystat() 함수는 원본 파일의 타임스탬프 정보를 복사본 파일에 적용하는 기능을 제공합니다. 다음은 shutil.copystat() 함수를 사용한 예시 코드입니다.

import shutil
import os

# 원본 파일의 경로와 복사본 파일의 경로 설정
source_file = 'original.txt'
target_file = 'copy.txt'

# copy2() 함수를 사용하여 파일 복사
shutil.copy2(source_file, target_file)

# 원본 파일의 타임스탬프 정보를 복사본 파일에 적용
stat_info = os.stat(source_file)
shutil.copystat(source_file, target_file, follow_symlinks=False)

위의 코드에서 우리는 os.stat() 함수를 사용하여 원본 파일의 타임스탬프 정보를 가져오고, shutil.copystat() 함수를 사용하여 복사본 파일에 타임스탬프를 적용합니다.

결론

shutil 모듈의 shutil.copy2() 함수는 파일을 복사할 때 원본 파일의 타임스탬프를 보존하는 간편한 기능을 제공합니다. 이는 보안 검사나 버전 관리 시스템과 같은 상황에서 중요합니다. 또한 shutil.copystat() 함수를 사용하여 타임스탬프를 수동으로 관리하는 방법도 알아보았습니다.

이러한 기능들을 활용하여 파일 관리 작업을 보다 효율적으로 수행할 수 있습니다.