概要
上传生成的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()
小结
注意电脑登录账户要有复制和删除文件的权限。