我正在編寫一個腳本,需要通過它將運行的Linux機器的本地dbus來利用Java守護進程。這個守護進程特別會返回一個我想要的元組數組,這樣我就可以在後面的代碼中解析/使用這些信息。我希望這段代碼能夠同時從多臺機器上獲取這個值,但問題是我真正需要從終端返回/退出值的唯一方式是我通過解析stdout的輸出。我不想這樣做,我更願意獲得實際的變量。現在我有這個:如何從python的shell中獲取變量?
import os
message = "import dbus, sys\nbus=dbus.SystemBus()\nremote_object=bus.get_object('daemon.location', '/daemon')\ncontroller=dbus.Interface(remote_object, 'daemon.path')\nsys.exit(controller.getValue())"
x = os.system('echo \-e "%s" \| ssh %s python' %(message, ip))
在這個例子中,當我運行「controller.getValue()」它返回一個元組數組。我試圖找出一種方法來獲得該數組。當使用類似popen的東西時,它將標準輸出輸出到一個文件並將其返回給您,這樣您就可以得到一個與該數組等價的字符串。我想弄清楚的是如何獲得實際的數組。好像要將退出ssh tty時返回的變量傳遞給我的代碼。有任何想法嗎?
這正是外殼做:解析輸出,並把它變成變量。沒辦法避免它。 –