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 一样

  • 相关阅读:
    kafka原理
    互斥和条件变量区别
    多线程-----Thread类与Runnable接口的区别
    String、StringBilder和StringBuffer之间的区别
    react native与原生的交互
    Typescript 常见写法
    react项目中的注意点
    js中的正则表达式
    前端总结(一)
    前端性能的优化
  • 原文地址:https://www.cnblogs.com/zhangyan-2015/p/6253499.html
Copyright © 2011-2022 走看看