2

Xfoilを使用してデータファイルを処理する関数があります。しかし、私はいくつかのルーズエンドを片付けようとしています。私はOSX10.8.2を実行しているので、XfoilはX11(XQuartzとして実行)を使用してグラフなどを作成します。XQuartzアプリの終了後に関数も閉じたいので、次のことを試みています。

os.system("""'echo osascript -e 'tell application "XQuartz" to quit'""")

しかし、運がありません。トリプル二重引用符を使用してすべてを文字列として受け取り、osがインポートされます。「osascript-e」アプリケーション「XQuartz」に終了を指示する」は、echo関数で使用しようとしているAppleScriptだと思います。

4

1 に答える 1

4

間違ったコマンドを実行しています。直接ではechoなく使用していて、コマンドに含まれている一重引用符のバランスが取れていません(3つあります)。osascript

代わりにsubprocessモジュールを使用する方が簡単です。

import subprocess

subprocess.call(['osascript', '-e', 'tell application "XQuartz" to quit'])

subprocessプロセス引数のリストを取得するため、引用について(多くの場合)心配する必要はありません。

于 2013-02-18T18:15:22.893 に答える