Plu*_*ug4 2 python compression tar
我的问题是一个跟进这一个。我想知道如何修改以下代码,以便分配压缩级别:
import os
import tarfile
home = '//global//scratch//chamar//parsed_data//batch0'
backup_dir = '//global//scratch//chamar//parsed_data//'
home_dirs = [ name for name in os.listdir(home) if os.path.isdir(os.path.join(home, name)) ]
for directory in home_dirs:
full_dir = os.path.join(home, directory)
tar = tarfile.open(os.path.join(backup_dir, directory+'.tar.gz'), 'w:gz')
tar.add(full_dir, arcname=directory)
tar.close()
Run Code Online (Sandbox Code Playgroud)
基本上,代码的作用是循环遍历目录中的每个目录batch0并压缩每个目录(每个目录中有6000多个文件),并tar.gz为中的每个目录创建一个压缩文件//global//scratch//chamar//parsed_data//。我认为默认情况下,压缩级别为= 9,但压缩需要大量时间。我不需要太多压缩。5级就足够了。如何修改上面的代码以包含压缩级别?
compresslevel您可以传递一个属性open()(无需gzopen()直接使用):
tar = tarfile.open(filename, "w:gz", compresslevel=5)
Run Code Online (Sandbox Code Playgroud)
在gzip文档中,compresslevel可以是1到9之间的数字(默认为9),1是最快,压缩最少的数字,而9是最快和压缩最少的数字。
[ 另请参见:tarfile文档 ]
| 归档时间: |
|
| 查看次数: |
1393 次 |
| 最近记录: |