#!/usr/bin/python
import os
import shutil
import commands
import time
import copy
name = 'test'
echo name
我有一個簡單的Python腳本就像上面那樣。當我嘗試執行它時,我嘗試輸出名稱變量時出現語法錯誤。如何在Python腳本中執行UNIX命令
#!/usr/bin/python
import os
import shutil
import commands
import time
import copy
name = 'test'
echo name
我有一個簡單的Python腳本就像上面那樣。當我嘗試執行它時,我嘗試輸出名稱變量時出現語法錯誤。如何在Python腳本中執行UNIX命令
不能使用,如果他們Python代碼在你的Python腳本UNIX命令,echo name
導致一個語法錯誤,因爲echo
沒有在Python內置的語句或功能。相反,使用print name
。
要運行UNIX命令,您需要創建一個運行該命令的子進程。最簡單的方法是使用os.system()
,但subprocess
模塊更可取。
您也可以使用子流程模塊。
import subprocess
proc = subprocess.Popen(['echo', name],
stdin = subprocess.PIPE,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE
)
(out, err) = proc.communicate()
print out
您應該至少指定您正在獲取的確切錯誤消息。 – C2H5OH
爲什麼你期望像Python那樣支持泛型unix命令('echo'),就好像它是一個公認的Python語句一樣? – poke
@ C2H5OH它只是產生一個通用的「語法錯誤」,因爲'echo'不是一個關鍵字,它希望在可能的變量名稱(例如賦值)後發生其他事情。 – poke