python自动运行

# -*- coding:utf-8 -*-
import subprocess,time,sys

TIME = 3                    #程序状态检测间隔(单位:分钟)
CMD = "D:\mycode\Techingpython\daily.py"                 #需要执行程序的绝对路径,支持jar 如:D:\\calc.exe 或者D:\\test.jar

 

class Auto_Run():
    def __init__(self,sleep_time,cmd):
        self.sleep_time = sleep_time
        self.cmd = cmd
        self.ext = (cmd[-3:]).lower()        #判断文件的后缀名,全部换成小写
        self.p = None                        #self.p为subprocess.Popen()的返回值,初始化为None
        self.run()                           #启动时先执行一次程序

        try:
            while 1:
                time.sleep(sleep_time * 6)  #休息10分钟,判断程序状态
                self.poll = self.p.poll()    #判断程序进程是否存在,None:表示程序正在运行 其他值:表示程序已退出
                if self.poll is None:
                    print ("运行正常")
                else:
                    print ("未检测到程序运行状态,准备启动程序")
                    self.run()
        except KeyboardInterrupt as e:
            print ("检测到CTRL+C,准备退出程序!")
#            self.p.kill()                   #检测到CTRL+C时,kill掉CMD中启动的exe或者jar程序

    def run(self):
        if self.ext == ".py":
            print ('start OK!')
            self.p = subprocess.Popen(['python','%s' % self.cmd], stdin = sys.stdin,stdout = sys.stdout, stderr = sys.stderr, shell = False)
        else:
            pass
app = Auto_Run(TIME,CMD)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮助你编写一个Python自动运行小游戏跳一跳的程序。不过,在此之前,你需要安装一些必要的依赖项。请按照以下步骤操作: 1. 安装 Python3 如果你的机器上没有安装 Python3,请先安装 Python3。 2. 安装 ADB ADB 是 Android Debug Bridge 的缩写,是 Android 开发工具包中的一部分,它可以让你通过 USB 连接将你的 Android 设备与计算机连接起来。请下载 ADB 并安装。 3. 安装 Python 库 请安装以下 Python 库:opencv-python、numpy、Pillow 和 adb_shell。你可以使用以下命令在命令行中安装它们: ``` pip install opencv-python numpy Pillow adb-shell ``` 安装完成后,你可以使用以下代码来自动运行跳一跳游戏: ```python import os import time import cv2 import numpy as np from PIL import ImageGrab from adb_shell.adb_device import AdbDeviceUsb from adb_shell.adb_device import AdbDeviceTcp from adb_shell.adb_message import AdbMessage from adb_shell.auth.sign_pythonrsa import PythonRSASigner # 配置 adb_host = '127.0.0.1' adb_port = 5555 adb_key_path = os.path.expanduser('~/.android/adbkey') jump_distance = 1.35 screenshot_offset = (0, 0, 1080, 1920) template_path = 'template.png' # 连接设备 signer = PythonRSASigner(adb_key_path) device = AdbDeviceTcp(adb_host, adb_port, default_transport_timeout_s=9.0) device.connect(rsa_keys=[signer]) # 截屏 screenshot = device.screencap() screenshot = cv2.imdecode(np.frombuffer(screenshot, np.uint8), cv2.IMREAD_COLOR) screenshot = cv2.cvtColor(screenshot, cv2.COLOR_BGR2RGB) screenshot = screenshot[screenshot_offset[1]:screenshot_offset[3], screenshot_offset[0]:screenshot_offset[2]] # 加载模板 template = cv2.imread(template_path, cv2.IMREAD_GRAYSCALE) # 匹配模板 result = cv2.matchTemplate(screenshot, template, cv2.TM_CCOEFF_NORMED) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) x, y = max_loc # 计算距离 distance = int(np.sqrt((x - 470) ** 2 + (y - 1700) ** 2) * jump_distance) # 发送点击事件 device.shell(f'input swipe {x} {y} {x} {y} {distance}') # 断开连接 device.close() ``` 请将代码中的 adb_host、adb_port、adb_key_path、jump_distance、screenshot_offset 和 template_path 配置为你自己的值。然后,运行代码即可自动运行跳一跳游戏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值