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 way 与 os.system
相同。自第一次尝试执行以来超时以秒为单位测量
我有一个简单的功能,旨在解析 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 way 与 os.system
相同。自第一次尝试执行以来超时以秒为单位测量