0

私はここに問題があります:私はGUI(wxpython)を持っています、それはspinctrlを持っています、spinctrlの出力はコマンドライン引数を受け入れるcファイルに送信する必要があります。 GUI では、手動で入力する代わりに、spinctrl 値を送信する必要があります。

私のコードは次のとおりです。

      ps = "password" 
      var1 = self.sc1.Getvalue()
      var2 = self.sc2.Getvalue()
      subprocess.call(['echo xsxsxs | sudo "./license.exe"', str(ps), str(var1), str(var2)],shell = True)

このスクリプトを実行するたびに、出力/エラーが表示されません:(

エコー xsxsxs| を削除すると 4 行目から sudo を実行してから実行すると、次のエラーが表示されます: "you must be root user","Invalid password", "segmentation fault".

4

1 に答える 1

2

shell=Trueto (または便利なラッパーの 1 つ)を使用するときはいつでも、.subprocess.Popenではなく、シェルで入力するのとまったく同じ方法で文字列を渡す必要がありますlist

ドキュメントから:

shell が True の場合、args をシーケンスではなく文字列として渡すことをお勧めします。

于 2013-02-15T04:41:51.857 に答える