zoukankan      html  css  js  c++  java
  • python脚本与shell脚本的结合应用

    函数

    system()

    • 其中最后一个0是这个命令的返回值,为0表示命令执行成功。使用system无法将执行的结果保存起来。

              

    popen()

    • 获取命令执行的结果,但是没有命令的执行状态,这样可以将获取的结果保存起来放到list中。

              

    commands

    • 可以很方便的取得命令的输出(包括标准和错误输出)和执行状态位。
    • commands.getoutput('ls')这个方法只返回执行结果result不返回状态。

      这里写图片描述

    在python中调用shell脚本

    • hello.sh

      这里写图片描述

    • 下面的512是返回的状态码,如果eixt 0时则返回的是0.

      这里写图片描述

    shell脚本使用python脚本的参数

    • 写一个hello.sh脚本,需要传入两个参数:

      这里写图片描述

    • 执行结果如下:

      这里写图片描述

    • 在python脚本中调用shell脚本,并传入参数,注意参数前后要有空格

      这里写图片描述

    • 执行python脚本

      这里写图片描述

    适用于Python3

    subprocess

    可以执行shell命令的相关模块和函数有:

    os.system
    os.spawn
    os.popen –废弃
    popen2.* –废弃
    commands.* –废弃,3.x中被移除

    例子

    更丰富的功能

    (1) call

    执行命令,返回状态码(命令正常执行返回0,报错则返回1)

    (2) check_call

    执行命令,如果执行成功则返回状态码0,否则抛异常

    (3) check_output

    执行命令,如果执行成功则返回执行结果,否则抛异常

    (4) subprocess.Popen(…)

    用于执行复杂的系统命令
    参数 注释
    args shell命令,可以是字符串或者序列类型(如:list,元组)
    bufsize 指定缓冲。0 无缓冲,1 行缓冲,其他 缓冲区大小,负值 系统缓冲
    stdin, stdout, stderr 分别表示程序的标准输入、输出、错误句柄
    preexec_fn 只在Unix平台下有效,用于指定一个可执行对象(callable object),它将在子进程运行之前被调用
    close_sfs 在windows平台下,如果close_fds被设置为True,则新创建的子进程将不会继承父进程的输入、输出、错误管道。所以不能将close_fds设置为True同时重定向子进程的标准输入、输出与错误(stdin, stdout, stderr)。
    shell 同上
    cwd 用于设置子进程的当前目录
    env 用于指定子进程的环境变量。如果env = None,子进程的环境变量将从父进程中继承。
    universal_newlines 不同系统的换行符不同,True -> 同意使用
    startupinfo 只在windows下有效,将被传递给底层的CreateProcess()函数,用于设置子进程的一些属性,如:主窗口的外观,进程的优先级等等
    createionflags 同上

  • 相关阅读:
    LeetCode 79. 单词搜索
    LeetCode 1143. 最长公共子序列
    LeetCode 55. 跳跃游戏
    LeetCode 48. 旋转图像
    LeetCode 93. 复原 IP 地址
    LeetCode 456. 132模式
    LeetCode 341. 扁平化嵌套列表迭代器
    LeetCode 73. 矩阵置零
    LeetCode 47. 全排列 II
    LeetCode 46. 全排列
  • 原文地址:https://www.cnblogs.com/chenjiye/p/11002826.html
Copyright © 2011-2022 走看看