py导入时段报表+清理旧文件
该文章接py导出时段报表【https://www.cnblogs.com/windysai/p/16168581.html】,今天把导入的功能也实现了,额外加了清理旧文件的功能。
其实导入最主要是调导入接口
# -*- coding: utf-8 -*- # @Time : 2022/5/5 9:35 # @Author : ljy # @File : period-import.py # ''' 此脚本将xxx报表导入到xxx系统 ''' # coding:utf-8 import os from requests_toolbelt.multipart.encoder import MultipartEncoder from selenium.webdriver.chrome.options import Options from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time import shutil import datetime import re import requests import json from tkinter import * import tkinter as tk import tkinter.messagebox from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.common.keys import Keys import os import requests import sys import shutil ######################################################### # 1、发送消息的函数 def send_msg(msg): 看回前面的 ######################################################### # 2、获取上个工作日时间 def last_workday(): 看回前面的 ######################################################### # 3、 初始化浏览器 def browser_page(): 看回前面的 ################################################################## # 4、登录主页 def browser_project(browser): 看回前面的 ############################################################## # 5、进入主页跳转 def get_bo(browser): 看回前面的 #报表导出后,改名 path_get = os.getcwd() filepath2 = change_name(path_get, "xxxx报表") # 6.4 修改导出报表的名字 def change_name(url, add): 看回前面的 ################################################################## # 7、xxx报表:导入系统 push_bo(filepath2, "顺德") # 8、关闭浏览器 browser.quit() print("exit") ################################################################### # 6.4 修改导出报表的名字 def change_name(url, add): 看回前面的 ####################### 导入报表 ################ def push_bo(path, add): ##1、登录页面 url = "xxxxxx" headers = {"Content-Type": "application/json;charset=UTF-8"} payload = {'username': 'xxx', 'password': 'xxx'} req = requests.post(url=url, data=json.dumps(payload), headers=headers) j = json.loads(req.text) value = "Bearer " + j['data']['accessToken'] headers = \ { "Content-Type": "application/json;charset=UTF-8", "Authorization": value } city_name = add print("开始导入%s报表" % city_name) ## 导入接口 url = 'xxxxxxx' mult_headers = \ { "Authorization": value } data = {'day': last_workdays, 'file': (os.path.basename(path), open(path, 'rb'), 'application/xls')} m = MultipartEncoder(data) headers['Content-Type'] = m.content_type response = requests.post(url, data=m, headers=headers) json2 = response.json() print(json2["success"]) if not json2["success"]: send_msg("test: %s -- xxxx报表,导入失败" % city_name) ############################ 新增清理文件 ####################################### # 8、清理7天前文件 def delfile(file_url): f = list(os.listdir(file_url)) print("目录:%s,开始清理过期文件...." % file_url) ## 一个个遍历文件 for i in range(len(f)): filedate = os.path.getmtime(file_url + f[i]) ## 获取文件修改时间 time1 = datetime.datetime.fromtimestamp(filedate).strftime('%Y-%m-%d') date1 = time.time() ## 天数 num1 =(date1 - filedate)/60/60/24 # 超过7天进行清理 if num1 >= 7: try: os.remove(file_url + f[i]) print(u"已删除文件:%s : %s" % (time1, f[i])) except Exception as e: print(e) else: print("......") ################################################################# def start_project_bo(): last_workday() browser_page() browser_project(browser) get_bo(browser) ### 清理文件 file_url='E:\\table\\' file1 = delfile(file_url) print(u'过期文件已清理完毕:%s' % file_url) if __name__ == '__main__': start_project_bo()
效果图: