昊天SEO

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

㈠ 调用系统的程序

  1. >>> import sh
  2. >>> print(sh.ls(‘/home/mysql’))
  3. cdio_bak.sql  mysql-5.5.16.tar.gz
  4. mm        percona-xtrabackup-2.1.4656-Linux-i686.tar.gz
  5. mysql         percona-xtrabackup-2.1.4-Linux-i686
  6. mysql-5.5.16  startmysql.sh

㈡ 调用自己的程序

  1. >>> import sh
  2. >>> r=sh.Command(‘/root/dd.py’)
  3. >>> r()
  4. hello,DBA

㈢ bake命令参数

  1. >>> import sh
  2. >>> du=sh.du.bake(‘-shc’)
  3. >>> print (du(‘/home/mysql’))
  4. 1.1G    /home/mysql
  5. 1.1G    总计

㈣ glob列出文件

  1. >>> import sh
  2. >>> list=sh.glob(‘/root/mm/*’)
  3. >>> print list
  4. [‘/root/mm/Backup’‘/root/mm/Usplash’‘/root/mm/AWN’‘/root/mm/Wallpapers’‘/root/mm/GRUB’‘/root/mm/Mozilla’]

㈤ 管道

  1. >>> print(sh.sort(sh.du(sh.glob(‘*’),‘-shc’),‘-rn’))
  2. 712K    distribute-0.6.49.tar.gz
  3. 672K    setuptools-1.1.5.tar.gz
  4. 548K    get-pip.py

管道是有序的,默认由内而外,但如果需要并行呢?加个_piped=True

  1. >>> for line in sh.tr(sh.tail(“-f”“/home/mysql/mysql/log/alert.log”, _piped=True), “[:upper:]”“[:lower:]”, _iter=True):
  2. …   print line
  3. innodb: doublewrite buffer not found: creating new
  4. innodb: doublewrite buffer created
  5. innodb: 127 rollback segment(s) active.
  6. innodb: creating foreign key constraint system tables
  7. innodb: foreign key constraint system tables created

本文地址官网    新乡网站建设,seo

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址