首页 > 编程语言 > 详细

python正则表达式练习篇

时间:2016-02-23 20:50:05      阅读:431      评论:0      收藏:0      [点我收藏+]

练习一:

利用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‘\s\s+‘, eachLine)

f.close()

技术分享 

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

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

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

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

代码更新:

#! /usr/bin/python
from os import popen
from re import split

f = popen(‘who‘, ‘r‘)
for eachLine in f.readlines():
    print split(r‘\s\s+|\t‘, eachLine.strip())
f.close()

其中strip函数介绍:


 

函数原型

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

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

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

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

注意

1. 当rm为空时,默认删除空白符(包括‘\n‘, ‘\r‘,  ‘\t‘,  ‘ ‘)

例如:

技术分享

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

例如 :

 技术分享

  

 

python正则表达式练习篇

原文:http://www.cnblogs.com/stemon/p/5211056.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!