Python 复制生成的log到服务器并备份到本地

本文介绍了使用Python编写的脚本,该脚本自动将生成的日志文件上传到服务器并备份到本地,按PASS、FAIL和Other类别分别存储。脚本包含获取日期、创建文件夹、遍历文件、文件分类和复制功能,同时强调了用户权限要求。
摘要由CSDN通过智能技术生成

概要

上传生成的log到服务器并备份到本地。

整体架构流程

获取日期建立文件夹/遍历当前目录/判断文件名并赋值到

技术名词解释

NA

技术细节

提示:这里可以添加技术细节

下面展示一些 内联代码片

import os
import time
import shutil
import re


def creat_dir():

    #获取当前日期
    current_date = time.strftime("%Y%m%d", time.localtime())

    #log存放目录
    dirs = ['\\\\192.168.120.100\\Report\\测试部\\CLTH创联腾产品测试logs\\射频校准'+"\\"+current_date+"\\PASS",\
    '\\\\192.168.120.100\\Report\\测试部\\CLTH创联腾产品测试logs\\射频校准'+"\\"+current_date+"\\FAIL",\
    '\\\\192.168.120.100\\Report\\测试部\\CLTH创联腾产品测试logs\\射频校准'+"\\"+current_date+"\\Other",\
    'D:\测试log'+"\\"+current_date+"\\PASS",'D:\测试log'+"\\"+current_date+"\\FAIL",'D:\测试log'+"\\"+current_date+"\\Other"]

    #每天需要建新的文件夹
    for dir_name in dirs:

        if not os.path.exists(dir_name):
            try:
                os.makedirs(dir_name,exist_ok=True)
            except Exception:
                print("文件夹创建失败!")
    return dirs
        
#遍历当前工作目录下所有文件,并返回一个列表。
file_list = []
def digui_files(direc):
    for file_name in os.listdir(direc):
        file_path = os.path.join(direc,file_name)
        if os.path.isfile(file_path):
            #print (file_path)
            file_list.append(file_path)
        else:
            digui_files(file_path)
    #print (file_list)
    return file_list
    
    
#复制文件
def copy_files(file_list_get,dirs):
    for file in file_list_get:
        if ".log" in file or ".csv" in file:
            if "_Pass" in file or "_PASS" in file:
                shutil.copy(file,dirs[0])
                shutil.copy(file,dirs[3])
                os.remove(file)
                print (file,"PASS的上传OK")
            elif "_FAIL" in file or "Fail_" in file and "AUTO" not in file:
                shutil.copy(file,dirs[1])
                shutil.copy(file,dirs[4])
                os.remove(file)
                print (file,"FAIL的上传OK")
            else:
                #shutil.copy(file,dirs[2])
                shutil.copy(file,dirs[5])
                os.remove(file)
                print (file,"其他文件复制OK")


#主函数
#注意file_list文件列表必须每次循环清空,否则报错。
def main():
    while True:
        dirs = creat_dir()
        file_work = digui_files(os.getcwd())
        try :
            copy_files(file_work,dirs)
        except Exception:
                print("程序在重试上传。如您打开txt文件请关闭。")
        file_list.clear()
        time.sleep(10)
        

main()

小结

注意电脑登录账户要有复制和删除文件的权限。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值