py导入时段报表+清理旧文件

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()

 

 

效果图:

 

 

posted @ 2022-05-05 16:57  windysai  阅读(37)  评论(0编辑  收藏  举报