Python os.system - 设置最大执行时间

Python os.system - set max time execution

我有一个简单的功能,旨在解析 IP 并在 windows 机器上执行 ipwhois,在几个 txt 文件中打印输出:

 for ip in unique_ip:
        os.system('c:\whois64 -v ' + ip + ' > ' + 'C:\ipwhois\' + ip +'.txt' )

碰巧这个 os.system 调用卡住了,整个过程都卡住了。 问题:是否可以在 os.system 命令上设置最大执行时间?

编辑

这个有效:

def timeout_test():
    command_line = 'whois64 -v xx.xx.xx.xx'
    args = shlex.split(command_line)
    print(args)
    try:
        with open('c:\test\iptest.txt', 'w') as fp:
            subprocess.run(args, stdout=fp, timeout=5)
    except subprocess.TimeoutExpired:
        print('process ran too long')
    return (True)
test = timeout_test()

您可以向 subprocess.call 添加一个超时参数,它的工作方式 almost the same wayos.system 相同。自第一次尝试执行以来超时以秒为单位测量