gpt4 book ai didi

Python tarfile 比 Linux 命令慢

转载 作者:太空宇宙 更新时间:2023-11-03 17:18:27 26 4
gpt4 key购买 nike

我尝试了不同的方式来压缩文件夹。我的理解是 Python 内置模块总是比 subprocess.call("Linux command") 快。但我只是做了一些演示。 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 秒。

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

最佳答案

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

关于Python tarfile 比 Linux 命令慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45621476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com