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