zoukankan      html  css  js  c++  java
  • python正则表达式练习篇

    练习一:

    利用who命令输出所有已经登录系统的用户的信息,并把登录名、用户登录时的电传、登录时间、登录地址利用正则表达式分割开来。

    数据的格式:

    %who
    wesc    console     Jun 20 20:33
    wesc    pts/9       Jun 22 01:38	(192.168.0.6)
    wesc    pts/1       Jun 20 20:33	(:0.0)
    wesc    pts/2       Jun 20 20:33	(:0.0)
    wesc    pts/4       Jun 20 20:33	(:0.0)
    wesc    pts/3       Jun 20 20:33	(:0.0)
    wesc    pts/5       Jun 20 20:33	(:0.0)
    wesc    pts/6       Jun 20 20:33	(:0.0)
    wesc    pts/7       Jun 20 20:33	(:0.0)
    wesc    pts/8       Jun 20 20:33	(:0.0)
    

    利用linux的数据重定向,把who命令的输出重定向到一个文件中,然后在利用python分析这个文件。

    import re
    f = open('whodata.txt', 'r')
    for eachLine in f.readlines():
    	print re.split(r'ss+', eachLine)
    
    f.close()
    

     

    可以看到存在的一些问题:

    1. 每一行的结尾都有一个回车符号,要去除这个东西。

    2. 中间还有一个制表符 ,说明设计的正则表达式要修改。

    3. 要直接从终端分析没一行,不要保存为本地文件在进行分析。

    代码更新:

    #! /usr/bin/python
    from os import popen
    from re import split
    
    f = popen('who', 'r')
    for eachLine in f.readlines():
        print split(r'ss+|	', eachLine.strip())
    f.close()

    其中strip函数介绍:


    函数原型

    声明:s为字符串,rm为要删除的字符序列

    s.strip(rm)        删除s字符串中开头、结尾处,位于 rm删除序列的字符

    s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符

    s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符

    注意

    1. 当rm为空时,默认删除空白符(包括' ', ' ',  ' ',  ' ')

    例如:

    2.这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉

    例如 :

     

      

  • 相关阅读:
    【软件测试部署基础】maven的认识
    测试管理那些事[组建测试团队的思考]
    Django 框架基本操作(二)
    测试人员的工作开展方式
    产品管理基础知识
    项目经理与职能经理的区别
    python 面向对象(二)
    Python 常用方法和模块的使用(time & datetime & os &random &sys &shutil)-(六)
    python基本案例实现
    JAVA基础——集合浅析
  • 原文地址:https://www.cnblogs.com/stemon/p/5211056.html
Copyright © 2011-2022 走看看