Python中的时间路由子进程

2024-09-29 19:26:29 发布

您现在位置:Python中文网/ 问答频道 /正文

def adbshell(command, serial=None, adbpath='adb'):
    args = [adbpath]
    if serial is not None:
        args.extend(['-s', serial])
    args.extend(['shell', command])
    return subprocess.check_output(args)



def pmpath(serial=None, adbpath='adb'):
    return adbshell('am instrument -e class............', serial=serial, adbpath=adbpath)

我必须运行这个测试一个特定的时间段,然后退出如果它不工作。如何提供超时?在


Tags: nonereturnifisdefserialnotargs
2条回答

取决于您正在运行的Python版本。

Python 3.3以后:

^{cd1>}提供^{cd2>}参数。检查签名here

subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False, timeout=None)

Python 3.3以下:

您可以使用^{cd3>}模块。比如:

^{pr2}$

注意-我没有用^{{cd3>}和^{{cd5>}测试上述代码。通常我使用^{cd6>},它提供了更多的灵活性,并且几乎处理所有的场景。检查doc

Popen结构提供了更大的灵活性,因为它可以用来检查subprocess调用的退出状态。在

如果进程尚未终止,Popen.poll返回{}。因此,调用子进程sleep,以获得所需的超时时间。在

考虑一个简单的test.py,它是从主程序调用的子进程。在

import time

for i in range(10):
        print i
        time.sleep(2)

{{cd6}是从cd6}调用的

^{pr2}$

time.sleep(2)

提供2秒的超时时间,以便程序可以执行异常。 使用Popen.poll检查进程的退出状态

如果None,进程尚未终止,则终止进程。在

相关问题 更多 >

    热门问题