此代码将一堆文件放在一个文件夹中(基于文件名),将它们压缩为bz2并将它们添加到tar文件中。有没有办法可以修改它只将文件压缩成bz2(或gzip)?我不想将它们打包成焦油。我只想浏览一个目录中的每个文件并压缩它。
import os
from glob import glob
import tarfile
os.chdir(r'C:\Documents\FTP\\')
compression = "w:bz2"
extension = '.tar.bz2'
filename = 'survey_'
filetype = 'survey_report_*.csv'
tarname = saveloc+filename+extension
files = glob(filetype)
tar = tarfile.open(tarname, compression)
for file in files:
if file not in tarname:
print('Packaging file:', file)
tar.add(file)
tar.close()
编辑:
此代码似乎适用于某些文件,但对于其他文件,它使它们为1kb,当我打开它时,只有一些随机字符。有什么建议吗?
import bz2
import os
location = r'C:\Users\Documents\FTP\\'
os.chdir(location)
filelist = os.listdir(location)
for file in filelist:
data = open(file).read()
try:
output = bz2.BZ2File(file + '.bz2', 'wb')
output.write(data)
finally:
output.close()