Python을 사용하여 전체 압축 tar 파일을 만드는 방법은 무엇입니까?
Python에서 압축하여 .tar.gz 파일을 어떻게 만들 수 있습니까?
전체 디렉토리 트리에 대한 .tar.gz
(일명 .tgz
) 을 빌드하려면 :
import tarfile
def make_tarfile(output_filename, source_dir):
with tarfile.open(output_filename, "w:gz") as tar:
tar.add(source_dir, arcname=os.path.basename(source_dir))
import tarfile
tar = tarfile.open("sample.tar.gz", "w:gz")
for name in ["file1", "file2", "file3"]:
tar.add(name)
tar.close()
tar.bz2 압축 파일을 만들려면 파일 확장자 이름을 ".tar.bz2"로, "w : gz"를 "w : bz2"로 바꾸십시오.
"gzip 압축 쓰기를 위해 열기"를 의미하는으로 tarfile.open 을 호출합니다 mode='w:gz'
.
당신은 아마 파일 이름 (끝 할 수 있습니다 name
에 인수 open
로)를 .tar.gz
,하지만 압축 능력에 영향을주지 않습니다.
BTW, 일반적으로를 사용하여 압축 할 수 있는 것보다 더 잘 압축 할 수있는 'w:bz2'
것과 마찬가지로 .tar
bzip2
gzip
이전 답변 은 파이썬 tarfile
에서 .tar.gz
파일 을 생성하기 위해 파이썬 모듈을 사용하는 것이 좋습니다. 그것은 아카이브 속도에 심각한 단점이 있지만 분명히 좋은 파이썬 스타일의 솔루션입니다. 이 질문tarfile
은 Linux에서 직접 명령을 호출하는 것보다 약 두 배 느리다는 것을 언급합니다 . 내 경험에 따르면이 추정은 꽤 정확합니다.
따라서 더 빠른 보관을 위해 subprocess
모듈을 사용하여 직접 Linux 명령을 사용할 수 있습니다 .
subprocess.call(['tar', '-czf', output_filename, file_to_archive])
이 tar.gz 파일에서 열린보기 디렉토리에서 압축하십시오. 해결에서 os.path.basename (file_directory)을 사용하십시오.
with tarfile.open("save.tar.gz","w:gz"):
for file in ["a.txt","b.log","c.png"]:
tar.add(os.path.basename(file))
tar.gz 파일에서의 사용 디렉토리에서 압축
참고 URL : https://stackoverflow.com/questions/2032403/how-to-create-full-compressed-tar-file-using-python
'IT박스' 카테고리의 다른 글
Click Event on UIImageView programmatically in ios (0) | 2020.09.13 |
---|---|
C 메모리 관리 (0) | 2020.09.13 |
별도의 프로젝트에서 MVC 솔루션의 웹 API (0) | 2020.09.12 |
정규식은 정확히 n 또는 m 회 (0) | 2020.09.12 |
sqlite3.ProgrammingError : 8 비트 바이트 열을 해석 할 수있는 text_factory를 사용하지 않는 한 8 비트 바이트 열을 사용해서는 안됩니다. (0) | 2020.09.12 |