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

    效果图:

  • 相关阅读:
    [翻译] M13ProgressSuite
    控制器转场动画详解
    [翻译] SIAlertView
    隐藏导航栏之后支持手势退回上一个控制器
    UIView的无损截图
    [翻译] UIColor-uiGradientsAdditions
    简化通知中心的使用
    Java Web应用的开发环境配置
    StartUML的基础的使用,用例图,序列图
    SQLyog图形化l数据库的操作和学习
  • 原文地址:https://www.cnblogs.com/windysai/p/16225414.html
Copyright © 2020-2023  润新知