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这种土豪交朋友

㈠ 调用系统的程序

[python]

>>> 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

㈡ 调用自己的程序

[python]

>>> import sh

>>> r=sh.Command(‘/root/dd.py‘)

>>> r()

hello,DBA

㈢ bake命令参数

[python]

>>> import sh

>>> du=sh.du.bake(‘-shc‘)

>>> print (du(‘/home/mysql‘))

1.1G    /home/mysql

1.1G    总计

㈣ glob列出文件

[python]

>>> 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‘]

㈤ 管道

[python]

>>> 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

[python]

>>> 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

时间: 2024-11-03 21:51:10

Python sh库学习的相关文章

【python标准库学习】thread,threading(二)多线程同步

继上一篇介绍了python的多线程和基本用法.也说到了python中多线程中的同步锁,这篇就来看看python中的多线程同步问题. 有时候很多个线程同时对一个资源进行修改,这个时候就容易发生错误,看看这个最简单的程序: import thread, time count = 0 def addCount(): global count for i in range(100000): count += 1 for i in range(10): thread.start_new_thread(ad

【python标准库学习】thread,threading(一)多线程的介绍和使用

在单个程序中我们经常用多线程来处理不同的工作,尤其是有的工作需要等,那么我们会新建一个线程去等然后执行某些操作,当做完事后线程退出被回收.当一个程序运行时,就会有一个进程被系统所创建,同时也会有一个线程运行,这个线程就是主线程main,在主线程中所创建的新的线程都是子线程,子线程通常都是做一些辅助的事.python中提供了thread和threading两个模块来支持多线程. python中使用线程有两种方式,第一种是用thread模块的start_new_thread函数,另一种是用threa

python第三方库学习之xlrd读取Excel文件

因为经常会涉及到从Excel表中导数据,所以就学习了python的xlrd来读取excel中的数据. 1.xlrd的安装 xlrd是python的第三方库,所以是需要自己安装的,可以在python的官网http://pypi.python.org/pypi/xlrd下载该模块来安装,也可以通过其他手段,比如easy_install或者pip啥的,我已经安装好pip所以就用最懒的方式来安装了pip install xlrd来安装. 2.分析excel文件的层级对象 要读取excel的数据,就要了解

【python标准库学习】re模块

1.什么是re 正则表达式一门相对通用的语言,在python中也有对正则表达式的支持,那就是的内置re模块.正则表达式就是一系列的规则去匹配字符串然后进行相应的操作,这些规则网上一搜一大片,而re则是运用正则表达式来提供一系列的功能强大的接口让我们来调用.通常我们在对日志文件进行操作的时候会对正则表达式运用的比较多来得到我们希望得到的数据. 2.python中的转义符 正则表达式中通常用反斜杠'\'来代表转义,'\d'代表数字等,但是python本身也是通过反斜杠'\'来表示转义,所以就和正则表

python标准库学习-random

想想这么多年,也是没有好好梳理一下自己的知识体系,以至于总是会有书到用时方恨少的遗憾. 最近既然有学习的动力,干脆就趁着这份工作不是特别忙的机会,写一点东西吧,也理理自己的逻辑思维能力. python有哪些库? 这个问题呢可以参照http://blog.csdn.net/python_wangjunji/article/details/8689297这篇博文来看. 当然咯,首先要先推荐一个可厉害的学习程序:Dash.学编程必备查询库,各种语言,专治"我要看源码病". 那第一篇呢,我就先

python requests库学习笔记(上)

尊重博客园原创精神,请勿转载! requests库官方使用手册地址:http://www.python-requests.org/en/master/:中文使用手册地址:http://cn.python-requests.org/zh_CN/latest/: requests库作者Kenneth Reitz个人主页:https://www.kennethreitz.org/: requests库github地址:https://github.com/requests/requests: requ

python re库-----学习(正则表达式)

#!/usr/bin/env python #-*- coding:UTF-8 -*- ##################################################### # Author: sunfx   [email protected] # Last modified:  2014/11/12  - 2014/11/13 # Filename:  re.py # Q  Q  群:  236147801 ################################

python requests库学习笔记(下)

1.请求异常处理 请求异常类型: 请求超时处理(timeout): 实现代码: import requestsfrom requests import exceptions        #引入exceptions A:请求超时 def timeout_request():    try:        response = requests.get(build_uri('user/emails'), timeout=0.1)    except exceptions.Timeout as e:

python folium 库学习

一.简介 folium是js上著名的地理信息可视化库leaflet.js为Python提供的接口,通过它,我们可以通过在Python端编写代码操纵数据,来调用leaflet的相关功能,基于内建的osm或自行获取的osm资源和地图原件进行地理信息内容的可视化,以及制作优美的可交互地图.其语法格式类似ggplot2,是通过不断添加图层元素来定义一个Map对象,最后以几种方式将Map对象展现出来. 而在Map对象的生成形式上,可以在定义所有的图层内容之后,将其保存为html文件在浏览器中独立显示,也可