2
#!/usr/bin/python

import os
import shutil
import commands
import time
import copy

name = 'test'

echo name 

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

4

2 回答 2

11

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

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

于 2012-06-05T21:49:28.700 回答
10

您还可以使用子流程模块。

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

(out, err) = proc.communicate()
print out

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

于 2012-06-05T21:47:56.137 回答