我写了一个小的Python程序。它通过运行main.py每15分钟执行一次,它只是加载2个其他python脚本作为模块。
问题是当一个模块发生故障时(例如由于互联网连接丢失)该怎么办。其中一个模块解析来自互联网的提要。如果失败,则必须假定某个值。问题是将此值导入main.py。
模块:
[...]
feed=feedparser.parse(url)
if not feed.feed:
# Assume Error
print("Error")
Temperature = 20
print 'Assuming', Temperature, 'degrees C'
sys.exit()
Temperature = [...]
当我导致模块失败时,main.py在模块导入后退出。我该如何解决这个问题?
我认为这是由调用sys.exit()引起的,但我不知道还应该调用哪些函数?
...谢谢
答案 0 :(得分:3)
在python中,你可以在try except
块中使用它:
try:
import moduleA
except ImportError,e:
import moduleB
答案 1 :(得分:2)
python import语句就像任何其他Python代码一样。您可以将模块导入包装在try ... except块中,如下所示:
import somemodule
try:
from someothermodule import Temperature
except ImportError,e:
Temperature = 20
答案 2 :(得分:0)
发布的代码就是它。
main.py:
from temperature import Temperature
[some code to insert Temperature into SQLite DB]
temperature.py:
[...]
feed=feedparser.parse(url)
if not feed.feed:
# Assume Error
print("Error")
Temperature = 20
print 'Assuming', Temperature, 'degrees C'
sys.exit()
Temperature = [...]
感谢到目前为止的答案...我想没有办法很好地退出if语句并将假设的温度值传递给main.py?