我有一個shell腳本,我想從python程序中調用,但是根本無法使用以下代碼(Popen已導入) :使用python與Popen運行shell腳本在python命令行和實際程序中的行爲有所不同
bf_dir = '/home/wireless'
bf_path = os.path.join(bf_dir, 'airdispatch.sh')
sh = Popen("sudo " + bf_path, shell=True)
print sh.communicate()
理想的情況下,該腳本將生成輸出文件,但通過上面的代碼執行時,這些文件不會出現,並且「打印」的結果是[None, None]
。我的猜測是,「Popen」根本不會被執行,或者可能是我在這裏犯了一個錯誤。所以我在Python命令行中運行上面的代碼,但事實證明,一切工作正常。這怎麼可能?請幫忙,謝謝。
據我所見,sudo可能以這種方式工作 - 用'sudo apt-get update'進行測試,但它非常混亂,因爲你必須編寫純文本密碼。 – deinonychusaur 2012-03-19 22:02:17