Python tarfile比Linux命令慢

Python tarfile比Linux命令慢,python,centos,Python,Centos,我尝试了不同的压缩文件夹的方法。我的理解是Python内置模块总是比subprocess.call(“Linux命令”)快。 但我只是做了一些演示。tarfile模块比subprocess.call(“tar”)慢。有人能给我解释一下吗 #!/usr/bin/python import os import time import tarfile import subprocess tStart1 = time.time() TestFolder = ["Jack", "Robin"

我尝试了不同的压缩文件夹的方法。我的理解是Python内置模块总是比subprocess.call(“Linux命令”)快。 但我只是做了一些演示。tarfile模块比subprocess.call(“tar”)慢。有人能给我解释一下吗

    #!/usr/bin/python

import os
import time
import tarfile
import subprocess

tStart1 = time.time()

TestFolder = ["Jack", "Robin"]
for folder in TestFolder:
    name = "/mnt/ShareDrive/Share/ExistingUsers/"+folder
    path = "/mnt/TEST2/"
    tar = tarfile.open(path+folder+".tar.gz", "w:gz")
    tar.add(name)
    tar.close()
tEnd1 = time.time()

time.sleep(2)

tStart2 = time.time()
for folder in TestFolder:
    path = "/mnt/TEST1/"
    subprocess.call(["tar", "zcvf", path+folder+".tar.gz", "-P", "/mnt/ShareDrive/Share/ExistingUsers/"+folder])
tEnd2 = time.time()

print "The module cost %f sec" % (tEnd1 - tStart1)
print "The subprocess cost %f sec" % (tEnd2 - tStart2)
tarfile模块花费63秒。 子流程只需32秒


两个文件夹的总大小为433 MB

tar
是用C编写的。
tarfile
模块是tar处理的纯Python实现。模块不可能比命令快。

在我的实验中,使用
w:gz
tarfile
tar cfz
慢得多,但压缩效果也更好。因此,我认为速度较慢,因为
tarfile
只是具有更高的默认压缩级别。

我的理解是Python内置模块总是比subprocess.call(“Linux命令”)更快。“这个假设是没有根据的。”保罗·阿尔梅达谢谢你纠正我的错误。谢谢你的解释。似乎我对Python模块有很大的误解。非常感谢你!