【python】有规律的文本中读取指定的行
最近在学习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行内容