2014-01-22 45 views
2

我正在通過Python的子進程模塊執行命令。我如何查看已執行的完整命令? 例如,如果我提交['ls', '-l'],我想要一個簡單的方法來查看'ls -l'。檢索由子進程執行的命令

+2

爲什麼不用'''.join(my_list)'?你正在調用子進程,所以你已經知道了完整的命令。 –

+0

聽起來像你正在嘗試做'shlex.split()'的反向? –

+0

請參閱http://stackoverflow.com/questions/2692873/和http://stackoverflow.com/questions/967443/ –

回答

4

這應該工作。

ls = subprocess.Popen(['ls', '/tmp']) 
cmd = file("/proc/%d/cmdline" % (ls.pid)).read() 

有關更多信息和意見,請參見The /proc Filesystem

請注意,有些命令會詢問您的權限。

當然,您可以(如西蒙指出的)將join應用到您傳遞給Popen的列表中。