自动化解压文夹压缩包

import os
import datetime
import logging
import paramiko
import tarfile
import gzip

# filename:设置日志输出文件,以天为单位输出到不同的日志文件,以免单个日志文件日志信息过多,
# 日志文件如果不存在则会自动创建,但前面的路径如log文件夹必须存在,否则会报错
basePath = os.getcwd()
log_file = 'sys_%s.log' % datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d')
log_file = os.path.join(basePath,"log",log_file)
if  os.path.exists(log_file):
    os.remove(log_file)
if not os.path.exists(os.path.dirname(log_file)):
    os.mkdir(os.path.dirname(log_file))
# level:设置日志输出的最低级别,即低于此级别的日志都不会输出
# 在平时开发测试的时候可以设置成logging.debug以便定位问题,但正式上线后建议设置为logging.WARNING,既可以降低系统I/O的负荷,也可以避免输出过多的无用日志信息
log_level = logging.INFO
# format:设置日志的字符串输出格式
log_format = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s'
logging.basicConfig(filename=log_file, level=logging.WARNING, format=log_format)
logger = logging.getLogger()
logger.setLevel(log_level)


# 遍历文件夹
def walkFile(file):
    for root, dirs, files in os.walk(file):

        # root 表示当前正在访问的文件夹路径
        # dirs 表示该文件夹下的子目录名list
        # files 表示该文件夹下的文件list
        # 遍历文件
        for f in files:
            filePath = os.path.join(root, f)
            print(filePath)
            if filePath.endswith(".tar.gz"):
                untar(filePath)

def untar(filePath):

    # 解压
    with tarfile.open(filePath, 'r:*') as tar:
        tar.extractall(path=os.path.dirname(filePath))  # 可设置解压地址
    logger.info("{} 解压完成")


if __name__ == "__main__":
    logger.info("-----------------执行开始--------------------------->")
    filePath = input("请输入要解压文件目录:")
    walkFile(filePath)
    logger.info("<-----------------执行结束---------------------------")
    print("解压结束")
    input("按ENTER结束")
    
posted @ 2020-06-17 15:32  孤寂的狼  阅读(141)  评论(0编辑  收藏  举报