【python】有规律的文本中读取指定的行

本文介绍了一种使用Python处理特定格式文件的方法。该文件包含系统资源使用情况的数据,作者通过编写一个简单的Python脚本来提取每7行中的后5行数据。此教程适合初学者实践并了解如何针对具体需求定制文件解析程序。

最近在学习python,正好工作中遇到一个问题,正好拿来练练手。

User 3%, System 16%, IOW 0%, IRQ 0%
User 11 + Nice 0 + Sys 51 + Idle 246 + IOW 0 + IRQ 0 + SIRQ 0 = 308

  PID CPU% S  #THR     VSS     RSS UID      Name
22843   5% R     1    940K    380K root     top
 1638   1% S     9 121264K  15544K app_17   com.SecureUpgrade
 1261   0% S    14 109184K  17032K app_16   com.db4o.servo.search
  821   0% S     1   1204K    540K root     /opl/third_party/mesh/mesh
  830   0% S     1    720K    360K root     /system/bin/logcat



User 3%, System 14%, IOW 0%, IRQ 0%
User 12 + Nice 0 + Sys 47 + Idle 255 + IOW 0 + IRQ 0 + SIRQ 1 = 315

  PID CPU% S  #THR     VSS     RSS UID      Name
22843   3% R     1    948K    396K root     top
 1261   1% S    14 109184K  17032K app_16   com.db4o.servo.search
 1638   0% S     9 121264K  15564K app_17   com.SecureUpgrade
  821   0% S     1   1204K    540K root     /opl/third_party/mesh/mesh
  834   0% S     1    720K    364K root     /system/bin/logcat

 我要处理的正如你看到的上面的文本,事实上我想要的只是第8行(实际的文本开头还有3行空行)开始往下的5行内容。它的规律就是每隔7行后面5行才是我需要的。

于是就用python写了一个小程序,代码如下:

 1 def ReadFile(fp, start_line, read_scope):
2 lines = fp.readlines()
3 cursor = 0
4 for line in lines:
5 line = line.rstrip()
6 cursor += 1
7 while (cursor > start_line):
8 return line
9 if (cursor == (start_line+read_scope)):
10 cursor = 0
11 break
12 fp.close()

说明:

fp:是要读写的文件,你可以用下面的代码定义:

1 fp = open('file')

start_line:可以理解为你要跳过的行数

read_scope:是你要读取的行数

例如,ReadFile(fp, 7, 5)就是从第8行开始读取5行内容

转载于:https://www.cnblogs.com/whuiscool/archive/2012/02/28/2372484.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值