如果模块失败,则导入Python

时间:2013-08-28 19:56:20

标签: python module

我写了一个小的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()引起的,但我不知道还应该调用哪些函数?

...谢谢

3 个答案:

答案 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?