用python压缩文件夹中的所有文件?

时间:2015-09-11 14:26:43

标签: python compression gzip

此代码将一堆文件放在一个文件夹中(基于文件名),将它们压缩为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()

0 个答案:

没有答案
相关问题