python的shell有什么用_python的shell有什么用

2017-08-04 回答

使用python来运维linux是非常简单轻松的一件事情,但是仅仅是一些交互式比较强的,比shell更灵活的一些工作时,可以使用python,如果是一些简单的查找,排序,等什么的,可以还用shell来完成,下面来看下在python3.4中,如何与linux交互的。

在python里面可以操作linux的命令有

1,os.system("cmd")

2,os.open("cmd")

3,spawn*

4,subprocess

在最新的python里,推荐使用subprocess来与shell通信,它会生成一个子进程来连接输出,输入,错误等shell下3中标准的输入输出流,并返回执行结果的状态码0和1,来判断本次执行命令的成功与失败。

下面来看一个小例子,首先,确保你的linux环境支持python3.4,如果不支持,你可以参考散仙的上篇文章来安装python3.4

首先,在linux,执行python命令找到最新的python3.4的路径,然后再py文件里声明头部路径,如果不知道python的具体安装路径,可以使用which python来查找路径

[root@master ~]# py

pydoc pydoc3.4 python2 python3 python3.4-config python3.4m-config pyvenv

pydoc3 python python2.6 python3.4 python3.4m python3-config pyvenv-3.4

[root@master ~]# which python3.4

/usr/local/python3.4/bin/python3.4

[root@master ~]#

写完脚本之后,先给脚本赋值权限,再执行:

[root@master rtt]# chmod +x b.py

[root@master rtt]# cat b.py

#!/usr/local/python3.4/bin/python3.4

import subprocess as t

v=t.call("ls")

print ("返回值: ",v)

[root@master rtt]# b.py

a.py b.py b.txt

返回值: 0

[root@master rtt]#

看下面的例子,注意python的shell执行,返回的是一个字符串,如果我们想逐行解析,需要使用如下方法:

[root@master rtt]# cat b.txt

id name

1 a

2 战三

3 b

[root@master rtt]# cat a.py

#!/usr/local/python3.4/bin/python3.4

import os

import subprocess as t

#var=t.getoutput("df -h")

#v=t.call("ls")

#var=t.getoutput("cat b.txt | grep a ")

var=t.getoutput("df -h | cat -n ")

for line in var.split("\n"):

print("这一行:" +line)

#print(var)

[root@master rtt]# a.py

这一行: 1 filesystem size used avail use% mounted on

这一行: 2 /dev/sda2 9.7g 2.9g 6.3g 32% /

这一行: 3 tmpfs 495m 0 495m 0% /dev/shm

这一行: 4 /dev/sda1 194m 28m 157m 15% /boot

这一行: 5 /dev/sda3 9.9g 948m 8.5g 10% /home

[root@master rtt]#

最后看下python的两种,生成行号的方式:

tt="你好\n哈喽"

for i,it in enumerate(tt.split("\n")):

print(i,it)

for line in range(len(tt.split("\n"))):

print(line," ",tt.split("\n")[line])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值