首页 > 编程语言 > 详细

Python执行命令行

时间:2017-01-05 19:59:47      阅读:383      评论:0      收藏:0      [点我收藏+]

背景

我们知道,虽然会破坏平台独立性,但是有的时候需要在代码里面调用命令行来获取一些信息,那么了解在 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 一样

Python执行命令行

原文:http://www.cnblogs.com/zhangyan-2015/p/6253499.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!