python 操作ini配置文件
安装依赖包
# conda安装:
(bash) adocir@adocir:~$ conda install -c conda-forge func_timeout
# pip安装:
(bash) adocir@adocir:~$ pip install func_timeout
func_timeout
func_set_timeout
@func_set_timeout(1)
设置装饰器触发超时时间为1秒,仅设置该参数会触发超时但程序会抛出异常。
FunctionTimedOut
可以在程序中捕获异常处理
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from func_timeout import func_set_timeout
import time
import func_timeout
@func_set_timeout(1)
test():
time.sleep(2)
print('test')
if __name__ == '__main__':
try:
test()
except func_timeout.exceptions.FunctionTimedOut:
print('func_timeout')
或者创建一个自定义超时装饰器并捕获异常
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
from func_timeout import func_set_timeout, FunctionTimedOut
def time_out(fn, *args, **kwargs):
def wrapper(*args, **kwargs):
try:
result = fn(*args, **kwargs)
return result
except FunctionTimedOut:
print('timeout')
return 'time_out'
return wrapper
@time_out
@func_set_timeout(1)
def test():
time.sleep(3)
return 'test'
if __name__ == '__main__':
test_ = test()
print(test_)