오늘은 Python에서 제공되는 모듈 중 tarfile 모듈을 사용하여 컴퓨터에 있는 tar 파일의 압축, 해제 등을 해보도록 하겠습니다.
먼저 tar이 어떤 파일 형식인지 알아야 다음 예제를 더 쉽게 이해할 수 있습니다.
압축이라 함은 아주 많은 파일들을 하나로 묶어 데이터 크기를 줄이는 행위를 의미합니다.
반대로 압축해제는 이러한 압축된 파일을 다시 풀어헤쳐 원래의 파일들을 확인할 수 있도록 하는 것이 목표입니다.
우리는 이런 대표적인 예제를 넘어서 tar 파일로 다양한 예제를 수행해 보도록 하겠습니다.
자, 그러면 tar 파일이 어떤 파일인지 먼저 알아보겠습니다.
tar 파일이란?
tar 파일은 여러 개의 파일과 디렉터리를 하나의 파일로 압축하여 저장하는 형식입니다. 이러한 압축 파일은 일반적으로. tar 확장자를 가지며, tar 파일은 파일을 그룹화하고 보관하거나 전송하기 위해 자주 사용됩니다.
tarfile 모듈 활용 사례
Python의 tarfile 모듈은 개발자의 코드를 통해 tar 파일을 만들고 압축을 해제하는 기능을 제공합니다. tarfile 모듈은 tar 파일의 압축 형식을 지원하며, 압축 해제, 파일 추가, 파일 목록 확인 등 다양한 작업에 사용됩니다.
이러한 간편한 기능을 통해 우리가 손쉽게 압축, 압축 해제를 할 수 있습니다.
tar 파일 압축 해제 예제
tar 파일을 압축 해제하는 예제는 다음과 같습니다.
import tarfile
tar = tarfile.open('/tmp/test.tar', 'r')
tar.extractall()
tar.close()
이 예제에서는 test.tar라는 tar 파일을 읽고, extractall() 메서드를 사용하여 파일을 현재 작업 디렉터리에 압축 해제합니다.
이 코드를 실행하고 다시 "/tmp" 디렉토리에 가면 압축이 해제된 것을 확인할 수 있습니다.
여러 파일 tar 압축 예제
여러 개의 파일을 tar로 압축하는 예제는 다음과 같습니다.
import tarfile
with tarfile.open('/tmp/test2.tar', 'w') as tar:
tar.add('/tmp/test_text1.txt')
tar.add('/tmp/test_text2.txt')
tar.add('/tmp/test_text3.txt')
이 예제에서는 test2.tar라는 이름의 tar 파일을 생성하고, add() 메서드를 사용하여 압축할 파일들을 추가합니다.
위 코드에서는 "/tmp" 경로에 있는 "test_text1.txt", "test_text2.txt", "test_text3.txt" 3개의 파일을 추가합니다.
저 파일들을 만들기 위해서는 아래와 같이 명령을 실행합니다.
cd /tmp
echo 1 > test_text1.txt
echo 2 > test_text2.txt
echo 3 > test_text3.txt
tar 파일 안에 있는 파일 목록 출력 예제
tar 파일 안에 있는 파일 목록을 출력하는 예제는 다음과 같습니다.
import tarfile
with tarfile.open('/tmp/test2.tar', 'r') as tar:
for f in tar.getmembers():
print(f.name)
이 예제에서는 위에서 만든 test2.tar라는 tar 파일을 읽고, getmembers() 메서드를 사용하여 tar 파일 안에 있는 각 파일의 정보를 얻습니다. 이후 f.name을 통해 파일 이름을 출력합니다.