0

小さな Python プログラムを作成しました。これは、main.py を実行することによって 15 分ごとに実行されます。これは、他の 2 つの Python スクリプトをモジュールとしてロードするだけです。

問題は、1 つのモジュールが故障した場合 (たとえば、インターネット接続が失われたため) に何をするかです。モジュールの 1 つは、インターネットからのフィードを解析します。失敗した場合、特定の値を想定する必要があります。問題は、この値を 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() の呼び出しが原因だと思いますが、他にどの関数を呼び出せばよいかわかりません。

ありがとう...

4

3 に答える 3

3

try exceptpythonでは、ブロックに入れることができます:

try:
    import moduleA
except ImportError,e:
    import moduleB
于 2013-08-28T19:59:58.937 に答える
2

Python import ステートメントは、他の Python コードと同様の式です。次のように、モジュールのインポートを try...except ブロックでラップできます。

import somemodule
try:
  from someothermodule import Temperature
except ImportError,e:
   Temperature = 20
于 2013-08-28T19:59:49.317 に答える
0

投稿されたコードはほとんどそれです。

main.py:

from temperature import Temperature
[some code to insert Temperature into SQLite DB]

温度.py:

[...]
feed=feedparser.parse(url)

if not feed.feed:
    # Assume Error
    print("Error")
    Temperature = 20
    print 'Assuming', Temperature, 'degrees C'
    sys.exit()

Temperature = [...]

これまでの回答に感謝します...ifステートメントをうまく終了し、想定されたTemperature値をmain.pyに渡す方法はないと思いますか?

于 2013-08-29T09:05:26.020 に答える