我有一個字符串叫做variable
,需要做subprocess
相當於os.system
。我試圖找到一種方法來做到這一點,但只發現:Python 3:使用子進程而不是os.system
variable2 = subprocess.Popen(args, stdout=subprocess.PIPE)
print variable2.communicate()[0]
但是,我無法理解如何使用它。我如何實現我的目標?
我有一個字符串叫做variable
,需要做subprocess
相當於os.system
。我試圖找到一種方法來做到這一點,但只發現:Python 3:使用子進程而不是os.system
variable2 = subprocess.Popen(args, stdout=subprocess.PIPE)
print variable2.communicate()[0]
但是,我無法理解如何使用它。我如何實現我的目標?
該文檔提供了幾種舊式子流程創建功能的等價物。 os.system()
解釋爲here。
os.startfile()還有一個等價物嗎? – 2012-02-25 11:51:52
編號'os.startfile()'是圍繞'ShellExecute()'的Windows特定包裝。 – 2012-02-25 11:56:28
In [4]: os.system('uname -a')
Linux diego-workstation 3.0.0-16-generiC#28-Ubuntu SMP Fri Jan 27 17:44:39 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Out[4]: 0
In [8]: subprocess.call(['uname', '-a'])
Linux diego-workstation 3.0.0-16-generiC#28-Ubuntu SMP Fri Jan 27 17:44:39 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Out[8]: 0
看那subprocess.call
,subprocess.check_call
和subprocess.check_output
功能。如果您正在執行shell命令(如os.system所示),則可能需要傳遞shell=True
,而不是明確指定可執行文件和一系列參數。
這裏有什麼'args'?在Py3中,'print'是一個函數,而不是一個聲明。 – 2012-02-25 11:36:23
代碼塊是複製/粘貼的,因爲我無法找到自己需要的方式,因此是問題所在。 – 2012-02-25 11:43:03
可能的重複[在Python中,我如何使用子進程而不是os.system?](http://stackoverflow.com/questions/421206/in-python-how-i-do-use-subprocess-instead-of -os-system) – 2017-02-07 14:44:15