python 自动截图工具 适用于工控机开关机测试 删除temp中的_MEI文件

用途:工控机测试,万次开启过程中,监控弹窗报错信息。
问题点:在测试过程中,temp生成的临时文件_MEI过多,c盘被写满。
所以动态获取上一次的临时文件路径,记录在txt文件中。下一次启动后自动删除上一次的临时文件。
参考:https://blog.csdn.net/maozexijr/article/details/91044472的方法。但是经过测试,原程序在运行中,是不能删除正在使用的_MEI文件。所以进行改进,下一次启动后再删除。


# !/usr/bin/python3
# coding: utf-8
from PIL import ImageGrab
import time

import gc
import os
import sys
import traceback
import shutil

this = os.path.abspath(os.path.dirname(__file__))
module = os.path.split(this)[0]
print('sys.path.append("%s")' % module)
sys.path.append(module)
for i, val in enumerate(sys.path):
    print("[%s] %s" % (i + 1, val))


def delMEI():
    print("执行delMEI函数")
    for index, path in enumerate(sys.path):
        basename = os.path.basename(path)
        if not basename.startswith("_MEI"):
            continue

        drive = os.path.splitdrive(path)[0]
        if "" == drive:
            path = os.getcwd() + "\\" + path
            path = path.replace("\\\\", "\\")


        if os.path.isdir(path):
            try:
                print("remove", path)
                if os.path.exists("del_temp.txt"):
                    file = open("del_temp.txt", "r")   # 打开文件夹
                    p = file.readlines()[0]            # 读取temp文件位置
                    shutil.rmtree(p)                   # 删除temp文件
                    file.close()
                    print("删除路径", p)

                with open("del_temp.txt", "w") as f:
                    f.write(path)                  # 写入路径,便于下次删除
                    print("写入路径", path)

            except:
                pass
            finally:
                break

def run():
    count = 0
    while True:
        if count == 0:  # 第一次,10s执行截屏
            time.sleep(10)

        count += 1
        pic = ImageGrab.grab()
        name = time.strftime("%Y-%m-%d---%H:%M:%S", time.localtime()).replace(':', '-')
        pic.save(r'%s.jpg' % name)
        print(count)

        with open("grab_screen_log.txt", "a") as f:
            f.write("截图%s.jpg成功!\r\n" % name)

        try:
            print("Start to xx..")

            print("End of the xx")
        except:
            traceback.print_exc()
        finally:
            gc.collect()
            delMEI()

        time.sleep(10)


if __name__ == '__main__':
    run()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值