在python中压缩文件夹的更快方法

时间:2016-02-02 11:50:56

标签: python compression

我正在寻找在python中压缩大文件夹(大约30 Go)的更快方法。压缩级别不是优先级。我尝试过像tarfile或zipfile这样的库。你知道其他图书馆吗?我的脚本在Linux上运行,像gzip,bzip2或xz这样的Linux命令更快吗?欢迎任何建议。

由于

2 个答案:

答案 0 :(得分:0)

我建议您使用本机linux命令并比较速度或执行时间。例如,使用本机tar命令。

import time
import os

start = time.time()

os.system("tar -cvf name.tar /path/to/directory")

end = time.time()
print("Elapsed time: %s"%(end - start,))

但请注意tar没有压缩。要减小文件大小,您应使用gzip

import time
import os

start = time.time()

os.system("tar -cvf name.tar /path/to/directory")
os.system("gzip name.tar")

end = time.time()
print("Elapsed time: %s"%(end - start,))

答案 1 :(得分:0)

这是一个示例代码,要求使用tkinter lib压缩文件夹并将其压缩到名为target Directory的目录。希望它会帮助

from tkinter import *
from tkinter.filedialog import askdirectory
import os
import time

source1 = askdirectory()#Source Directory
print(source1)
source = [str(source1)]
target_dir = '/Users/Dlucidone/Documents/'# Target_Directory

if not os.path.exists(target_dir):
  os.mkdir(target_dir)

today = target_dir + os.sep + time.strftime('%Y%m%d')
comment = "zippingDir"#input('Enter a comment --> ')
if len(comment) == 0:

  target = today + os.sep  + '.zip'
else:
  target = today + os.sep  + '_' + \
     comment.replace(' ', '_') + '.zip'
if not os.path.exists(today):
  os.mkdir(today)
print('Successfully created directory', today)

zip_command = "zip -r {0} {1}".format(target,' '.join(source))

print("Zip command is:")
print(zip_command)
print("Running:")
if os.system(zip_command) == 0:
  print('Successful backup to', target)
else:
  print('Backup FAILED')