1 Pre-knowledge
.tar.gz 文件是一种常见的压缩文件格式,它实际上是两种压缩格式的组合:.tar 和 .gz。
- .tar:这是“tape archive”的缩写,是一种打包(archiving)文件格式,用于将多个文件和目录合并成一个单一的文件,以便存储或传输。.tar 文件本身并不压缩数据,它只是将文件和目录打包在一起。
- .gz:这是“gzip”的缩写,是一种压缩程序,使用LZ77算法对文件进行压缩。.gz 文件是gzip压缩程序压缩过的文件。
当一个文件被压缩为 .tar.gz 或 .tgz 格式时,意味着该文件首先被打包成一个 .tar 文件,然后这个 .tar 文件被gzip程序进一步压缩。这样做的好处是可以先打包多个文件,再进行压缩,使得文件传输和存储更加高效。
2 OC22 Download
我们使用到的数据集为OC22中的IS2RS/IS2RE。点击html中的蓝色链接即可下载原始数据。
html link:https://fair-chem.github.io/core/datasets/oc22.html
3 Code
import tarfile# 指定解压缩的文件名
in_path = "data/is2res_total_train_val_test_lmdbs.tar.gz"# 打开.tar.gz文件
tar = tarfile.open(in_path, "r:gz")# 列出压缩包中的文件
for member in tar.getmembers():print(member.name)# 提取压缩包中的文件
tar.extractall()# 关闭tar文件
tar.close()
首先使用tarfile.open()函数打开.tar.gz文件,参数”r:gz”指定了以读取、gzip压缩的模式打开文件。然后使用tar.getmembers()函数列出压缩包中的文件,并逐个打印文件名。最后,使用tar.extractall()函数提取压缩包中的所有文件到当前目录,tar.close()函数关闭tar文件。
4 Result
-
输出压缩包中的文件名为:
-
在使用tar.extractall()函数后将数据解压缩到了文件名称所对应的目录。