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结束")