質問

イグナシオのアドバイスに従って( Pythonはスペースを取り外して追加します )私は以下のコマンドを使用するように変換しようとしています subprocess それよりも os.system.

スクリプト: os.system("/usr/local/bin/growlnotify -n emesene -a emesene -t """+title+""" -m """+text+"""""")

私は考えます: subprocess.call(['/usr/local/bin/growlnotify', '-n emesene', '-a emesene', '-t ""+title+"""', '-m """+text+"""""'], shell=True)

しかし、それは機能しません。これを機能させる方法はありますか?私はPythonドキュメントを見て、ここを見ましたが、私はそれを理解することはできません!

ところで titletext Emesene Messengers通知システムからの変数です

役に立ちましたか?

解決

リストを使用してコマンドを渡すときに「shell = true」を望んでいません。私はJeremy Banksの投稿でそのようにコメントしただけでした(shlex.splitに関する彼の声明が最も注目に値するので)が、私は現在担当者を持っていません:/

subprocess.call(['/usr/local/bin/growlnotify', '-n',  'emesene', '-a', 'emesene', '-t', title, '-m', text])

他のヒント

それ以外の

subprocess.call(['/usr/local/bin/growlnotify', '-n emesene', '-a emesene', '-t ""+title+"""', '-m """+text+"""""'], shell=True)

使用する

subprocess.call(['/usr/local/bin/growlnotify', '-n',  'emesene', '-a', 'emesene', '-t', title, '-m', text], shell=True)

シェルコマンドに引用されていないスペースがあるすべての場所で、別のリスト項目を分割します。

shlex.split 機能を使用して、シェルスタイルのコマンドからサブプロックが期待するソートのリストに変換できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top