`
qindongliang1922
  • 浏览: 2147540 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:116328
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:124593
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:58457
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:70354
社区版块
存档分类
最新评论

如何使用Python3.4与Linux shell交互

阅读更多
使用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 你好
1 哈喽
0     你好
1     哈喽





0
0
分享到:
评论

相关推荐

    Python编程入门经典

    1.1 编程与使用计算机的区别 3 1.1.1 编程的一致性 3 1.1.2 编程的可控性 4 1.1.3 程序要应对变化 4 1.1.4 小结 4 1.2 准备工作 4 1.2.1 在非Windows系统上安装 Python 3.1 5 1.2.2 使用Python Shell 5 1.3 开始使用...

    scapy:基于python的交互式数据包处理程序和库-python

    scapy:基于python的交互式数据包... Scapy 支持 Python 2.7 和 Python 3(3.4 到 3.8)。 它旨在跨平台,并在许多不同的平台(Linux、OSX、*BSD 和 Windows)上运行。 入门 Scapy 可用作 shell 或库。 有关更多详

    azure-shell:[非官方]交互式Azure CLI 2.0命令行界面

    Python版本:2.7、3.3、3.4、3.5、3.5、3.6甚至更多 操作系统:Mac,Ubuntu,CentOS,Windows Bash或可安装azure-cli的任何平台 先决条件 您需要安装Azure CLI 2.0作为azure-shell的先决条件。 请参考并安装(如果...

    python cookbook(第3版)

    11.7 在不同的Python解释器之间交互 11.8 实现远程方法调用 11.9 简单的客户端认证 11.10 在网络服务中加入SSL 11.11 进程间传递Socket文件描述符 11.12 理解事件驱动的IO 11.13 发送与接收大型数组 第十二...

    Python Cookbook

    8.2 在Linux上测量内存使用 317 8.3 调试垃圾回收进程 318 8.4 捕获和记录异常 320 8.5 在调试模式中跟踪表达式和注释 322 8.6 从traceback中获得更多信息 324 8.7 当未捕获异常发生时自动启用调试器 327 8.8 ...

    用Python写网络爬虫.pdf

    5.3.3 使用WebKit与网站交互 80 5.3.4 Selenium 85 5.4 本章小结 88 第6章 表单交互 89 6.1 登录表单 90 6.2 支持内容更新的登录脚本扩展 97 6.3 使用Mechanize模块实现自动化表单处理 100 ...

    dive into python

    1.8. 使用 Python 的交互 Shell 1.9. 小结 2. 第一个 Python 程序 2.1. 概览 2.2. 函数声明 2.2.1. Python 和其他编程语言数据类型的比较 2.3. 文档化函数 2.4. 万物皆对象 2.4.1. 模块导入的搜索路径 2.4.2. ...

    RED HAT LINUX 6大全

    10.1 Linux与新闻组 186 10.1.1 新闻供给点如何工作 187 10.1.2 推/拉新闻 187 10.1.3 下载新闻组的可选方法 187 10.2 INN硬件与软件要求 188 10.3 INN介绍 188 10.3.1 安装INN 188 10.3.2 INN启动文件 189 10.3.3 ...

    用Python写网络爬虫PDF-理查德 劳森(Richard Lawson)

    5.3.3 使用WebKit与网站交互 80 5.3.4 Selenium 85 5.4 本章小结 88 第6章 表单交互 89 6.1 登录表单 90 6.2 支持内容更新的登录脚本扩展 97 6.3 使用Mechanize模块实现自动化表单处理 100 6.4 本章小结 102...

    深入Python_zh-cn[中文版]

    使用 Python 的交互 Shell..................................................................................16 1.9. 小结...................................................................................

    wxpython in action中英文合集(两份)

    4.1 如何与wxPython程序交互? 76 PyCrust配置了标准的Python shell 77 4.2 PyCrust的有用特性是什么? 79 4.2.1 自动完成 80 4.2.2 调用提示和参数默认 80 4.2.3 语法高亮 81 4.2.4 Python 帮助 81 . . . . . .

    Dive Into Python 中文版

    1.8. 使用 Python 的交互 Shell .................................................................................................................13 1.9. 小结 ...............................................

    diveintopythonzh-cn-pdf 附代码.rar

    1.8. 使用 Python 的交互 Shell .................................................................................. 16 1.9. 小结 .............................................................................

Global site tag (gtag.js) - Google Analytics