002.文件压缩

 
 
import os
import datetime
import zipfile #Linux下可以用tarfile,windows用zipfile
import fnmatch
#1.定义函数find_spe_file,找到要压缩目录下的所有文件及路径
#patterns表示文件类型的连接符号比如.txt的.号,如果不输入,默认值为所有类型
#args为存放文件的类型
def find_spe_file(currentFolder, patterns=['*'], args=[]):
    for currentFolder, dirnames, fileNames in os.walk(currentFolder):
        for pattern in patterns:
            for filename in fileNames:
                if fnmatch.fnmatch(filename, pattern):
                    # print(filename)
                    yield os.path.join(currentFolder, filename)
#2.定义函数筛选选定的文件类型压缩,并用all_txt+时间格式作为压缩后文件名
def cre_zipfile():#cre_tarfile():
    args = ["*.txt"]#需要压缩的文件类型发在这个列表中
    now = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
    filename = "all_img_{0}.zip".format(now)#filename = "all_img_{0}.tar.gz".format(now)
    with zipfile.ZipFile(filename, mode='w') as f:# with tarfile.open(filename, mode='w:gz') as f:
        for item in find_spe_file(".", args):
            # linux tarzip的属性是add--f.add(item),zipfile的属性是write
            f.write(item)
    f.close()


if __name__ == "__main__":
    path = 'E:\\04.AutomationProject\\PracticePython\\noteBasic'#定义要压缩的文件目录
    os.chdir(path)
    cre_zipfile()#cre_tarfile()

猜你喜欢

转载自blog.csdn.net/baidu_27361307/article/details/80854159