PYファイルを介してBashコマンドを実行するには? [繰り返し]

PYファイルを介してBashコマンドを実行するには? [繰り返し]

/usr/lib/python2.7/dist-packages/Mailnag/plugins/libnotifyplugin.py
次のPythonスクリプトは、コマンドが('zenity --info --text="You got new mail"')実行されていないスクリプトから抽出されます。どのように機能させますか?mail_count > 0
以下の行が機能したらif mail_count > 1:実行したいと思います。

if mail_count > 0:
    import os
    os.system('zenity --info --text="You got new mail"')   

if mail_count > 1:
    summary = _("{0} new mails").format(str(mail_count))
    if (mail_count - i) > 1:
        body = _("from {0} and others.").format(senders)
    else:
        body = _("from {0}.").format(senders)
else:
    summary = _("New mail")
    body = _("from {0}.").format(senders)

次の「Testing.py」スクリプトを入れて/usr/lib/python2.7/dist-packages/Mailnag/plugins/Testing.py実行しましたが、実際に「新しいメールがあります」というメッセージが表示されました。

#!/usr/bin/env python2
import os
os.system('zenity --info --text="You got new mail"')

ベストアンサー1

sysコマンドの出力をキャプチャする必要がないのでos.system大丈夫です。
アップロードしたコードは問題ないようですが、zenitypythonスクリプトが実行されているパスで実行されているコマンドが利用可能かどうかを推測してください。

出力が有効であることを確認するには、次のようにします。

if mail_count > 0:
    import os
    result = os.system('echo "more than 0" > testfile')
    if result == 0:
        print("a testfile was created")

コマンドがテストファイルを生成すると、問題が解決したことがわかりますzenity

ノート
これは良い練習import文は可能であれば、文書の先頭に配置するのが最善です。

おすすめ記事