#!/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/