Python tarfile比Linux命令慢

2024-10-02 18:28:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用不同的方法拉拉链文件夹。我的理解是Python内置模块总是比subprocess.call(“Linux命令”)。 但我只是做了些演示。tarfile模块比subprocess.call有人能给我解释一下吗?在

    #!/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


Tags: 模块pathimport文件夹fortimetarfolder