利用python3实现Linux的脚本功能


当前第2页 返回上一页

新的版本推荐使用subprocess.run() 来解决一般问题。

subprocess.run()、subprocess.call()、subprocess.check_call()和subprocess.check_output()都是通过对subprocess.Popen的封装来实现的高级函数,因此如果我们需要更复杂功能时,可以通过subprocess.Popen来完成

run默认不会返回输出,只返回命令和执行状态

1

recomd = subprocess.run(['ls','-l'])#等待命令执行完成后会在屏幕输出执行结果,然后返回一个包含执行结果的CompletedProcess类的实例。print('输出recmd\n',recomd)print(recomd.returncode)

输出如下:

如果要返回输出,要添加参数,传递subprocess.PIPE给stdout和stderr,然后可以通过返回的CompletedProcess类实例的stdout和stderr属性或捕获相应的内容;

universal_newlines: 该参数影响的是输入与输出的数据格式,比如它的值默认为False,此时stdout和stderr的输出是字节序列;当该参数的值设置为True时,stdout和stderr的输出是字符串。

总代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

#!/usr/bin/env python3

print ('hello,world')

import os

# val2 =  os.system('cd trb && cd trb')

# val3 = os.system('ls')

# print('val2 is ',val2)

# val4 = os.popen('cd trb && cd trb')

# val5 = os.popen('ls')

# print('开始PRINT')

# print(val4.read())

# print(val5.read())

import subprocess

recomd = subprocess.run(['ls','-l'])

#等待命令执行完成后会在屏幕输出执行结果,然后返回一个包含执行结果的CompletedProcess类的实例。

print('输出recmd\n',recomd)

print(recomd.returncode)

print('传递参数')

recomdouterr = subprocess.run( ['ls','-l'],stdout=subprocess.PIPE,stderr=subprocess.PIPE,universal_newlines=True)

print('输出outerr',recomdouterr.stdout,recomdouterr.stderr)

print('传递参数2')

recomdouterr = subprocess.run( ['ls','-l'],stdout=subprocess.PIPE,universal_newlines=True)

print('输出outerr',recomdouterr.stdout)

print(len( recomdouterr.stdout.strip().split('\n') ))

print(recomdouterr.stdout.strip().split('\n')[-1])

# legacycmd = subprocess.getstatusoutput('ls -l')

#

# print('subprocess.getstatusoutput 输出',legacycmd)

#

# legacycmd2 = subprocess.getoutput('ls -l')

#

# print('subprocess.getoutput 输出',legacycmd2)

参考资料:python3.5 官方文档 : https://docs.python.org/3.5/library/subprocess.html

Python的使用途径越来越广泛了,而Linux作为服务器端也是大有作为,使用Python来实现Linux的脚本操作,简化了服务器端的操作,提高了可控性。

以上就是利用python3实现Linux的脚本功能的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

Python缺点是什么

Python如何在 .format 中使用大括号

为什么表达式“in [1,0] == true”的执行结果是false

Python的三种程序结构是什么

Python:中input()与raw_input()的详解

Python抓取网页乱码的原因及解决方法

Python数据分析师需要学什么

Python语言属于汇编语言吗?

“在windows下,用pip install tornado时,提示syntaxerror: invalid syntax 语法错误。”问题

Python如何实现爬取需要登录的网站代码实例

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...