Python sh库学习 上篇
官方文档有句话"allows you to call any program",并且:
helps you write shell scripts in Python by giving you the good features of Bash
第一句话助你在Python中轻松调用自己的程序,第二句则给你机会和Shell这种土豪交朋友
㈠ 调用系统的程序
>>> import sh
>>> print(sh.ls('/home/mysql'))
cdio_bak.sql mysql-5.5.16.tar.gz
mm percona-xtrabackup-2.1.4-656-Linux-i686.tar.gz
mysql percona-xtrabackup-2.1.4-Linux-i686
mysql-5.5.16 startmysql.sh
㈡ 调用自己的程序
>>> import sh
>>> r=sh.Command('/root/dd.py')
>>> r()
hello,DBA
㈢ bake命令参数
>>> import sh
>>> du=sh.du.bake('-shc')
>>> print (du('/home/mysql'))
1.1G /home/mysql
1.1G 总计
㈣ glob列出文件
>>> import sh
>>> list=sh.glob('/root/mm/*')
>>> print list
['/root/mm/Backup', '/root/mm/Usplash', '/root/mm/AWN', '/root/mm/Wallpapers', '/root/mm/GRUB', '/root/mm/Mozilla']
㈤ 管道
>>> print(sh.sort(sh.du(sh.glob('*'),'-shc'),'-rn'))
712K distribute-0.6.49.tar.gz
672K setuptools-1.1.5.tar.gz
548K get-pip.py
管道是有序的,默认由内而外,但如果需要并行呢?加个_piped=True
>>> for line in sh.tr(sh.tail("-f", "/home/mysql/mysql/log/alert.log", _piped=True), "[:upper:]", "[:lower:]", _iter=True):
... print line
...
innodb: doublewrite buffer not found: creating new
innodb: doublewrite buffer created
innodb: 127 rollback segment(s) active.
innodb: creating foreign key constraint system tables
innodb: foreign key constraint system tables created
By DBA_WaterBin
2013-09-30
Good Luck
Python sh库学习 上篇的更多相关文章
- Python sh库学习
官方文档有句话"allows you to call any program",并且: helps you write shell scripts in Python by giv ...
- python requests库学习笔记(上)
尊重博客园原创精神,请勿转载! requests库官方使用手册地址:http://www.python-requests.org/en/master/:中文使用手册地址:http://cn.pytho ...
- python标准库学习-SimpleHTTPServer
这是一个专题 记录学习python标准库的笔记及心得 简单http服务 SimpleHTTPServer 使用 python -m SimpleHTTPServer 默认启动8000端口 源码: &q ...
- python requests库学习
Python 第三方 http 库-Requests 学习 安装 Requests 1.通过pip安装 $ pip install requests 2.或者,下载代码后安装: $ git clone ...
- Python turtle库学习笔记
1.简介 Python的turtle库的易操作,对初学者十分友好.对于初学者来说,刚学编程没多久可以写出许多有趣的可视化东西,这是对学习编程极大的鼓舞,可以树立对编程学习的信心.当然turtle本身也 ...
- python requests库学习笔记(下)
1.请求异常处理 请求异常类型: 请求超时处理(timeout): 实现代码: import requestsfrom requests import exceptions #引入exc ...
- python中库学习
一.numpy NumPy的主要对象是同种元素的多维数组.这是一个所有的元素都是一种类型.通过一个正整数元组索引的元素表格(通常是元素是数字).在NumPy中维度(dimensions)叫做轴(axe ...
- Python标准库学习之zipfile模块
ZipFile模块里有两个非常重要的class, 分别是 ZipFile和ZipInfo. ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息的. ...
- Python PIL库学习笔记
1.PIL简介 Python Imaging Library(缩写为PIL)(在新的版本中被称为Pillow)是Python编程语言的开源库,它增加了对打开,操作和保存许多不同图像文件格式的支持.它适 ...
随机推荐
- PHP与Java使用des加密通讯
http://www.pocketdigi.com/20121112/940.html 原文:http://toptulip.iteye.com/blog/780309 使用php加密字符串,生成密文 ...
- iOS创建UUID
- (NSString *)getUUID { CFUUIDRef uuidObj = CFUUIDCreate(nil); //create a new UUID NSString * uuidSt ...
- javascript 正则 验证 第25节
<html> <head> <title>Form对象</title> <script type="text/javascript&qu ...
- (转)MySql可视化工具MySQL Workbench使用教程
转自:http://www.cnblogs.com/daimage/archive/2012/02/25/2367534.html 1. MySQL Workbench MySQL Workbench ...
- JS实现div块的拖放,调换位置
主要是HTML5 的拖放(Drag 和 Drop) 例子(不需要对div设置ID): <!DOCTYPE HTML> <html> <head> <scrip ...
- PHP知识分享之session && cookie
<?php /* * @Content : session && cookie * @author : Mr.xml * @time : 2015-3-17 09:53:49 * ...
- [C#]Array 添加扩展
众所周知,Array 一旦定义好,譬如四个长度,当需要再往里面添加元素的时候,需要Array.Resize一下才可以,为了提高代码复用,所以索性封装下,方便使用,代码如下: /// <summa ...
- demo_01 css3中的radius
css属性:border-radius :border:边框:radius:弧度:所以这个属性的意思很明了. 下面实现一个小demo: <!doctype html> <html&g ...
- PHP学习笔记(3) - 奇怪的class与autoload
PHP的class与其他语言有很多不同点.PHP允许很奇葩的在静态方法中调用实例方法,提供了关键字self和static用于访问类自身的静态成员.self永远是指当前的类,而static则可能会变成指 ...
- 原生js在IE7下 向dom添加节点的一个bug, (本例为添加hidden input)
需求是要用js向dom结构增加1个hidden用来存放要post到服务器的数据 var aspnetForm = document.getElementById("aspnetForm&qu ...