如何在Python脚本中执行UNIX命令

use*_*195 2 python unix

#!/usr/bin/python

import os
import shutil
import commands
import time
import copy

name = 'test'

echo name 
Run Code Online (Sandbox Code Playgroud)

我有一个像上面这样简单的python脚本.当我尝试执行它时,在尝试输出name变量时出现语法错误.

And*_*ark 11

您不能在Python脚本中使用UNIX命令,就像它们是Python代码一样,echo name导致语法错误,因为echo它不是Python中的内置语句或函数.相反,使用print name.

要运行UNIX命令,您需要创建一个运行该命令的子进程.最简单的方法是使用os.system(),但subprocess模块更可取.


pyf*_*unc 10

您也可以使用子进程模块.

import subprocess
proc = subprocess.Popen(['echo', name],
                            stdin = subprocess.PIPE,
                            stdout = subprocess.PIPE,
                            stderr = subprocess.PIPE
                        )

(out, err) = proc.communicate()
print out
Run Code Online (Sandbox Code Playgroud)

阅读:http://www.doughellmann.com/PyMOTW/subprocess/