如何使用Python创建tar文件?
在tar文件中,“TAR”代表“Tape Archive Files”。Tar文件是归档文件,可以在单个文件中存储众多文件。开源软件使用tar文件进行分发。
Tar文件通常以.tar结尾,但是在使用类似gzip的工具进行压缩后,它们的结尾为tar.gz。
打开Python tar文件的各种文件模式
- r − 打开TAR文件并读取它。
- r − 打开时读取未压缩的TAR文件。
- w或W − 打开TAR文件以进行未压缩写入。
- a或A − 打开TAR文件以进行附加而不压缩。
- r:gz − 打开使用gzip进行压缩的TAR文件以进行读取。
- w:gz − 打开使用gzip进行压缩的TAR文件以进行写入。
- r:bz2 − 打开使用bzip2进行压缩的TAR文件以进行读取。
- w:bz2 − 打开使用bzip2进行压缩的TAR文件以进行写入。
使用Python创建tar文件
使用Python的tarfile模块可以创建tar文件。以写入模式打开文件后,可以向tar文件中添加更多文件。
使用open()方法
下面是使用open()方法创建tar文件的Python代码示例。这里,我们使用open()方法创建一个tar文件,open()方法的第一个参数接受“w”以以写入模式打开文件,以及将用于生成的tar文件的文件名。
示例
下面是创建tar文件的示例代码:
# 输入模块
import tarfile
# 声明文件名
name_of_file= "TutorialsPoint.tar"
# 以写入模式打开文件
file= tarfile.open(name_of_file,"w")
# 关闭文件
file.close()
输出
输出结果是以“TutorialsPoint”命名的tar文件。
示例
注意 − 我们可以使用add()方法向创建的tar文件中添加文件。以下是示例:
# 输入模块
import tarfile
# 声明文件名
name_of_file= "TutorialsPoint.tar"
# 以写入模式打开文件
file= tarfile.open(name_of_file,"w")
# 向tar文件中添加其他文件
file.add("sql python create table.docx")
file.add("trial.py")
file.add("Programs.txt")
# 关闭文件
file.close()
输出
输出结果是以“TutorialsPoint”命名的tar文件。向add()方法中传递文件名,即可将文件添加到tar文件中。
使用os.listdir()方法创建和列出文件
listdir()方法返回目录中每个文件和文件夹的列表。
示例
下面是使用os.listdir()方法创建tar文件的示例:
import os
import tarfile
#创建tar文件
File = tarfile.open("TutorialsPoint.tar", 'w')
files = os.listdir(".")
for x in files:
File.add(x)
#列出tar文件中的文件
for x in File.getnames():
print ("已添加文件 %s" % x)
File.close()
输出
我们可以看到以下输出以及tar文件的创建:
已添加文件 desktop.ini
已添加文件 How to create a tar file using Python.docx
已添加文件 Microsoft Edge.lnk
已添加文件 prateek
已添加文件 prateek/Prateek_Sarika.docx
已添加文件 prateek/sample (no so good just follow the template).docx
已添加文件 untitled.py
已添加文件 ~WRL0811.tmp
在Python中使用tarfile和os.walk()方法创建tar存档文件
要从目录中构建zip存档文件,请使用tarfile模块。使用os.walk命令迭代地添加目录树中的每个文件。
示例
以下是创建tar归档文件的示例:
import os
import tarfile
def tardirectory(path,name):
with tarfile.open(name, "w:gz") as tarhandle:
for root, dirs, files in os.walk(path):
for f in files:
tarhandle.add(os.path.join(root, f))
tardirectory('C:\Users\Lenovo\Downloads\Work TP','TutorialsPoint.tar.gz')
tarfile.close()
输出
作为输出,我们可以看到创建了一个名为“TutorialsPoint”的tar文件。