【问题标题】:How to start a command line command from Python [duplicate]如何从 Python 启动命令行命令 [重复]
【发布时间】:2013-02-04 06:04:54
【问题描述】:

我从调用某些实用程序的命令行发出了一系列命令。具体来说:

root@beaglebone:~# canconfig can0 bitrate 50000 ctrlmode triple-sampling on loopback on
root@beaglebone:~# cansend can0 -i 0x10 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88
root@beaglebone:~# cansequence can0 -p

我似乎无法弄清楚(或找到明确的文档)我究竟是如何编写 Python 脚本来发送这些命令的。我以前没有使用过os module,但我怀疑这可能是我应该寻找的地方?

【问题讨论】:

    标签: python linux angstrom-linux


    【解决方案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')
    

    重新排列返回值应该没有问题。

    【讨论】:

      【解决方案2】:

      使用subprocess

      例子:

      >>> subprocess.call(["ls", "-l"])
      0
      
      >>> subprocess.call("exit 1", shell=True)
      1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-29
        • 2018-04-26
        • 1970-01-01
        • 1970-01-01
        • 2012-09-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多