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

如何使用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
分享到:
评论

相关推荐

    python3.4官方入门指南

    - 将 `/usr/local/bin` 添加至 shell 的搜索路径,便于通过 `python3.4` 命令直接启动解释器。 - 可能的其他安装路径示例:`/usr/local/python` - 使用 **文件结束符** (如 Control-D) 或 **`quit()` 命令** 退出...

    Active Python 3.4.3.2 win32 安装包

    Python,作为一门强大且广泛使用的编程语言,因其简洁易读的语法和丰富的库支持,深受开发者喜爱。而ActivePython则是Python的一个商业发行版,由ActiveState公司提供,它包含了Python的标准库以及一些额外的组件和...

    python3.4中清屏的处理方法

    在进行编程时,尤其是在使用命令行或者交互式环境如 IDLE 进行开发时,经常需要清空屏幕以便于查看最新的输出结果。对于 Python 开发者来说,掌握在不同环境下清屏的方法是非常有用的。 #### 二、在 IDLE 下清屏的...

    Python3.4实现远程控制电脑开关机

    Python的`os`模块提供了一种与操作系统交互的方法,`os.system()`可以执行shell命令。例如,`'shutdown -s -t 1'`用于在1秒后关机,`'shutdown -r'`则用于立即重启计算机。 需要注意的是,这个实现依赖于发送特定...

    Python3.4学习笔记之 idle 清屏扩展插件用法分析

    本文介绍了Python3.4 idle中实现清屏功能的几种方法,包括使用操作系统命令、自定义函数以及通过安装ClearWindow或IdleX扩展插件实现真正的清屏功能。这些方法各有优缺点,可以根据个人需求选择合适的方式。通过上述...

    Python3.5,django1.10实用例子2

    例如,你可能需要使用`subprocess`来调用shell命令,进行文件操作,或者与其他系统服务交互。 5. **表单**:在Django中,我们可以使用`forms`模块创建表单,处理用户输入和验证。表单通常与模型相关联,使得数据的...

    Win环境下配置Python3 MySQLdb

    MySQLdb是Python的一个数据库适配器,它允许Python程序与MySQL数据库进行交互。但是,Python 3.x版本中不再直接支持MySQLdb,而是推荐使用`mysql-connector-python`或者`pymysql`。不过,通过`mysqlclient`库,我们...

    征服python中文版

    #### 二、Python环境搭建与使用 **知识点:** - **操作系统兼容性**:Python支持多种操作系统,包括Windows、Mac OS X、Linux等。 - **安装步骤**:书中详细介绍了不同操作系统下的Python安装方法。 **章节内容**...

    python数据分析.docx

    Python 2.7与Python 3.4之间的选择常常引起争议。Python 2.7拥有丰富的社区支持和大量第三方库,适合特定应用,如Web开发。而Python 3.4则更整洁、高效,代表了Python的未来。尽管目前两者并存,但最终所有用户都将...

    python数据分析.doc

    Python 2.7与Python 3.4之间的选择是一个常见话题。Python 2.7拥有出色的社区支持和大量第三方库,适合需要广泛库支持的特定应用,如Web开发。而Python 3.4则修复了旧版本的一些问题,具有更好的性能和对未来发展的...

    dive into python(中文版)

    - **1.8 使用Python的交互Shell**:介绍了Python交互式Shell的基本操作。 - **1.9 小结**:总结本章重点内容。 - **第2章:第一个Python程序**(第18页至第25页) - **2.1 概览**:概述了本章的学习目标。 - **...

    Python常用库大全.pdf

    * pathlib: (Python3.4+ 标准库)跨平台的、面向对象的路径操作库。 * python-magic: 文件类型检测的第三方库 libmagic 的 Python 接口。 * Unipath: 用面向对象的方式操作文件和目录。 * watchdog: 管理文件系统...

    python 常用库

    1. IPython:一个交互式Python解析器,提供丰富的功能,提高交互式使用效率。 2. bpython:具有丰富界面的Python解析器。 3. ptpython:高级交互式Python解析器,构建于python-prompt-toolkit之上。 文件和MIME类型...

    DIVE INTO PYTHON

    - **1.8 使用Python的交互Shell** 介绍了Python的交互式Shell环境,以及如何利用它进行调试和实验。 - **1.9 小结** 总结了本章的学习要点。 ##### 第2章:第一个Python程序 - **2.1 概览** 对编写第一个...

    Python库 | ssh2_python-0.15.0-cp34-cp34m-win32.whl

    在ssh2_python库中,Cython的使用使得Python代码能更高效地与C语言底层库交互,提高了SSH连接和数据传输的速度。 **Python环境中的安装** `ssh2_python-0.15.0-cp34-cp34m-win32.whl` 是一个预编译的Python wheel...

    python源码scapy-2.4.4.tar.gz

    4. **交互式命令行界面**:Scapy提供了一个命令行工具,用户可以像操作shell一样与Scapy进行交互,动态构造和发送数据包,进行网络测试和分析。 5. **库形式的使用**:除了命令行,Scapy也可以作为Python库导入,...

Global site tag (gtag.js) - Google Analytics