使用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 哈喽
分享到:
相关推荐
- 将 `/usr/local/bin` 添加至 shell 的搜索路径,便于通过 `python3.4` 命令直接启动解释器。 - 可能的其他安装路径示例:`/usr/local/python` - 使用 **文件结束符** (如 Control-D) 或 **`quit()` 命令** 退出...
Python,作为一门强大且广泛使用的编程语言,因其简洁易读的语法和丰富的库支持,深受开发者喜爱。而ActivePython则是Python的一个商业发行版,由ActiveState公司提供,它包含了Python的标准库以及一些额外的组件和...
在进行编程时,尤其是在使用命令行或者交互式环境如 IDLE 进行开发时,经常需要清空屏幕以便于查看最新的输出结果。对于 Python 开发者来说,掌握在不同环境下清屏的方法是非常有用的。 #### 二、在 IDLE 下清屏的...
Python的`os`模块提供了一种与操作系统交互的方法,`os.system()`可以执行shell命令。例如,`'shutdown -s -t 1'`用于在1秒后关机,`'shutdown -r'`则用于立即重启计算机。 需要注意的是,这个实现依赖于发送特定...
本文介绍了Python3.4 idle中实现清屏功能的几种方法,包括使用操作系统命令、自定义函数以及通过安装ClearWindow或IdleX扩展插件实现真正的清屏功能。这些方法各有优缺点,可以根据个人需求选择合适的方式。通过上述...
例如,你可能需要使用`subprocess`来调用shell命令,进行文件操作,或者与其他系统服务交互。 5. **表单**:在Django中,我们可以使用`forms`模块创建表单,处理用户输入和验证。表单通常与模型相关联,使得数据的...
MySQLdb是Python的一个数据库适配器,它允许Python程序与MySQL数据库进行交互。但是,Python 3.x版本中不再直接支持MySQLdb,而是推荐使用`mysql-connector-python`或者`pymysql`。不过,通过`mysqlclient`库,我们...
#### 二、Python环境搭建与使用 **知识点:** - **操作系统兼容性**:Python支持多种操作系统,包括Windows、Mac OS X、Linux等。 - **安装步骤**:书中详细介绍了不同操作系统下的Python安装方法。 **章节内容**...
Python 2.7与Python 3.4之间的选择常常引起争议。Python 2.7拥有丰富的社区支持和大量第三方库,适合特定应用,如Web开发。而Python 3.4则更整洁、高效,代表了Python的未来。尽管目前两者并存,但最终所有用户都将...
Python 2.7与Python 3.4之间的选择是一个常见话题。Python 2.7拥有出色的社区支持和大量第三方库,适合需要广泛库支持的特定应用,如Web开发。而Python 3.4则修复了旧版本的一些问题,具有更好的性能和对未来发展的...
* pathlib: (Python3.4+ 标准库)跨平台的、面向对象的路径操作库。 * python-magic: 文件类型检测的第三方库 libmagic 的 Python 接口。 * Unipath: 用面向对象的方式操作文件和目录。 * watchdog: 管理文件系统...
1. IPython:一个交互式Python解析器,提供丰富的功能,提高交互式使用效率。 2. bpython:具有丰富界面的Python解析器。 3. ptpython:高级交互式Python解析器,构建于python-prompt-toolkit之上。 文件和MIME类型...
- **1.8 使用Python的交互Shell** 介绍了Python的交互式Shell环境,以及如何利用它进行调试和实验。 - **1.9 小结** 总结了本章的学习要点。 ##### 第2章:第一个Python程序 - **2.1 概览** 对编写第一个...
在ssh2_python库中,Cython的使用使得Python代码能更高效地与C语言底层库交互,提高了SSH连接和数据传输的速度。 **Python环境中的安装** `ssh2_python-0.15.0-cp34-cp34m-win32.whl` 是一个预编译的Python wheel...
4. **交互式命令行界面**:Scapy提供了一个命令行工具,用户可以像操作shell一样与Scapy进行交互,动态构造和发送数据包,进行网络测试和分析。 5. **库形式的使用**:除了命令行,Scapy也可以作为Python库导入,...