2013-02-19 60 views
2

我从命令行调用某些实用程序的一系列命令。具体做法是:如何从python提供命令行命令?

[email protected]:~# canconfig can0 bitrate 50000 ctrlmode triple-sampling on loopback on 
[email protected]:~# cansend can0 -i 0x10 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 
[email protected]:~# cansequence can0 -p 

似乎我无法弄清楚(或者找到清晰的文档)是我究竟怎么写一个Python脚本来发送这些命令。我之前没有使用os模块,但怀疑可能是我应该看的地方?

回答

1

使用subprocess

例如:

>>> subprocess.call(["ls", "-l"]) 
0 

>>> subprocess.call("exit 1", shell=True) 
1 
1

随着子过程可以方便地执行命令行命令和检索输出,或是否发生了错误:

import subprocess 
def external_command(cmd): 
    process = subprocess.Popen(cmd.split(' '), 
          stdout=subprocess.PIPE, 
          stderr=subprocess.PIPE) 

    # wait for the process to terminate 
    out, err = process.communicate() 
    errcode = process.returncode 

    return errcode, out, err 

实施例:

print external_command('ls -l') 

重新排列返回值应该不成问题。