如何在Python脚本中执行UNIX命令
我有一个简单的python脚本,如上面所述。当我试图执行它时,我在试图输出name变量时遇到语法错误。您也可以使用subprocess模块如何在Python脚本中执行UNIX命令,python,unix,Python,Unix,我有一个简单的python脚本,如上面所述。当我试图执行它时,我在试图输出name变量时遇到语法错误。您也可以使用subprocess模块 #!/usr/bin/python import os import shutil import commands import time import copy name = 'test' echo name 阅读:您不能在Python脚本中像使用Python代码一样使用UNIX命令,echo name导致语法错误,因为echo不是Python中
#!/usr/bin/python
import os
import shutil
import commands
import time
import copy
name = 'test'
echo name
阅读:您不能在Python脚本中像使用Python代码一样使用UNIX命令,
echo name
导致语法错误,因为echo
不是Python中的内置语句或函数。请改用打印名称
要运行UNIX命令,您需要创建运行该命令的子进程。最简单的方法是使用,但最好使用模块。您至少应该指定要获取的确切错误消息。为什么您希望像Python中那样支持通用unix命令(
echo
),就好像它是公认的Python语句一样?@C2H5OH它只会产生一个通用的“语法错误”,因为echo
不是一个关键字,它期望在一个可能的变量名(例如赋值)之后发生其他事情。@poke:谢谢,我已经知道了。我只是想提高OP提问时的礼貌。@C2H5OH已经认为你这样做了,但公平地说,“语法错误”在这种情况下尽可能准确^^
import subprocess
proc = subprocess.Popen(['echo', name],
stdin = subprocess.PIPE,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE
)
(out, err) = proc.communicate()
print out