zoukankan      html  css  js  c++  java
  • Python执行命令行

    背景

    我们知道,虽然会破坏平台独立性,但是有的时候需要在代码里面调用命令行来获取一些信息,那么了解在 Python 中如何执行命令行至关重要 

    使用介绍

    Python 中使用命令行可以通过 subprocess  来实现,比如执行一个简单的 ls 命令

        r = subprocess.call(["ls"])

    执行过后,会在标准输出上显示当前目录下的文件

    注意如果有重定向或者管道符等比较复杂的命令应该使用 sh -c '命令行'

        r = subprocess.call(["sh", "-c", 'ls; echo ;ls | grep init'])

    如果这么写

        r = subprocess.call(['ls; echo ;ls | grep init'])

    这是后会报 ls; echo ;ls | grep init 文件找不到,这个方法执行,会将列表的第一个字符串作为参数,其他的作为参数,所以这里这么写就会将整个字符串当作命令了,自然找不到这个命令文件,同理如果参数后面出现管道符,重定向等符号,因为是直接作为参数传给命令,所以并不能正常工作,因为这些符号是 shell 语法,命令并不能识别,因此要解决这个问题只能够使用 sh -c string,这条语法就是让 shell 来直接执行字符串 string 所代表的命令,因为直接是由 shell 解释器来执行的,就不会出现这些问题了

    扩展

    Java 中使用命令行,一般是使用

    Runtime.getRuntime().exec()

    传入的是字符串数组,用法原理和 Python 一样

  • 相关阅读:
    xss攻击和csrf攻击的定义及区别
    php中Redis的扩展
    MySQL事务特性
    PHP的设计模式
    http协议
    sql语句的优化
    mysql存储引擎
    laravel框架安装Curl扩展
    laravel框架中安装 elasticsearch 包
    docker容器配置nginx负载均衡 -----加权
  • 原文地址:https://www.cnblogs.com/zhangyan-2015/p/6253499.html
Copyright © 2011-2022 走看看