Python を使用して特定のアプリケーションでファイルを開く必要があります。デフォルトのアプリの場所/ファイル名を使用してファイルを開くようにデフォルトに設定します。ただし、アプリを開くことができない場合は、そのエラーを処理し、ユーザーに他のオプションを提供したいと思います。
これまでのところ、system.os とは対照的に、subprocess.call がこれを行うための最良の方法であることを理解しています。
アプリケーション: /Applications/GreatApp.app
これはうまくいきます
subprocess.call(['open','/Applications/GreatApp.app','placeholder.gap'])
ただし、try / except ループの追加を開始すると、何もしないように見えます。(アプリケーション名のスペースに注意してください - 例外を強制するために間違った名前を使用しています)
try:
subprocess.call(['open','/Applications/Great App.app','placeholder.gap'])
except:
print 'this is an error placeholder'
Python で次のエラーが表示されます。
The file /Applications/Great App.app does not exist.
エラー処理のいくつかの形式に私が見つけた最も近いものは次のとおりです。retcode の値を見るのは正しい方法ですか?
try:
retcode = subprocess.call("open " + filename, shell=True)
if retcode < 0:
print >>sys.stderr, "Child was terminated by signal", -retcode
else:
print >>sys.stderr, "Child returned", retcode
except OSError, e:
print >>sys.stderr, "Execution failed:", e
正しい名前と間違った名前の両方が 0 より大きい値を与えるため、retcode は方法ではないことが判明しました。