• 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

  • 相关阅读:
    20201224-3
    20201224-3 列表的使用1
    20201224 字符串常用操作
    20201224-1
    20201223-1 俄罗斯方块
    3月27日:毕业设计计划
    3月26日:毕业设计计划
    3月25日:毕业设计计划
    3月24日:毕业设计计划
    3月23日:毕业设计计划
  • 原文地址:https://www.cnblogs.com/james1207/p/3348002.html
Copyright © 2020-2023  润新知