来来来,我给你叨咕叨咕各种方法和各自优缺点:

    • os.system("命令加参数")把命令和参数传递给你系统的shell中.用这个命令的好处在于你可以一次运行好多命令还可以设置管道来进行重定向.来个栗子:os.system("命令 < 出入文件 | 另一个命令 > 输出文件")尽管它非常方便,但是你还是不得不手动输入像空格这样的sehll字符.从另一方面讲,对于运行简单的shell命令而不去调用外部程序来说的话还是非常好用的.
    • subprocess模块的管道Popen.这个Popen是打算用来替代os.popen的方法,它有点复杂:

      print subprocess.Popen("echo Hello World", shell=True,stdout=PIPE).stdout.read()

    print os.popen("echo Hello World").read()

    它最大的优点就是一个类里代替了原来的4个不同的popen

    • os模块里也有C语言里fork/exec/spawn方法,但是我不建议你直接用它们.

    模块可能更适合你.

    最后请注意在你传递到shell的命令一定要注意参数的安全性,给你个提示,看下面代码

    想象一下如果哪个SB输入 my mama didnt love me && rm -rf /