因业务需求,需要提取文本中带有检查字样的每一行。

样本如下:

1 投入10kVB、C母分段820闭锁备自投压板
2 退出10kVB、C母分段820备投跳803压板
3 退出10kVB、C母分段820备投合820压板
4 检查2、3号主变压器分头位置一致
5 合上820断路器
6 检查820断路器确带负荷
7 检查2号、3号主变压器负荷分配正常
8 拉开802断路器
9 检查802断路器在分闸位置
10 检查3号主变压器不过负荷

我们要用的包:re(python 强大的正则包),codecs(专门用作编码转换)

思路:一种思路是直接用正则找出检查,按照样本可以这样写:\d{1,2}\s检查,属于一劳永逸的写法。还有一种就是下面比较裸的写法,先用python的readlines()方法读取文本的每一行,再用 u'检查'判断带有‘检查’的每一行,这种方法比较麻烦的地方就是还需要去掉样本中的序号,def func()就是用来解决这个问题的。至于为什么我要用第二种,我也不知道。 :)

代码如下:

import re
import codecs f= codecs.open('F:/parseWord/tmp/F1040EZ.content.txt','r','utf-8')
s = f.readlines() f.flush()
f.close()
for fileLine in s: if u'检查' in fileLine:
line_pattern =r'\s*\d+\s?(.*)' def func(text):
c = re.compile(line_pattern)
lists = []
lines = text.split('\n')
for line in lines:
r = c.findall(line)
if r:
lists.append(r[0]) return '\n'.join(lists) result = func(fileLine)
print result

结果:

>>> ================================ RESTART ================================
>>>
检查2、3号主变压器分头位置一致 检查820断路器确带负荷 检查2号、3号主变压器负荷分配正常 检查802断路器在分闸位置 检查3号主变压器不过负荷
>>>

当然我们还可以新建一个list,用append方法将for循环出来的结果整合到一起:

test = []
'''
'''
'''
test.append(result)
print test

Python读取文本,输出指定中文(字符串)的更多相关文章

  1. yes---重复输出指定的字符串

    yes命令在命令行中输出指定的字符串,直到yes进程被杀死.不带任何参数输入yes命令默认的字符串就是y. 语法 yes(参数) 参数 字符串:指定要重复打印的字符串. 实例 [root@localh ...

  2. Python 读取和输出到txt

    读txt文件 python常用的读取文件函数有三种read().readline().readlines() read() #一次性读取文本中全部的内容,以字符串的形式返回结果 with open(& ...

  3. python 读取文本

    将文本转换到NumPy 数组中,做机器学习或其他任何任务,文本处理的技能必不可少.python 实现实现了很精简强大的文本处理功能: 假设 文件 traindata.csv 中有数据 1000行,3列 ...

  4. python读取文本txt文件乱码问题

    python2的编码实在是个头疼的问题,编码问题也将作为一个长期的话题,遇到问题随时补充. 这次的问题比较简单,是在做词云wordcloud的时候发现的,作用就是从文本文件中读取文字,将其制作成词云. ...

  5. python项目中输出指定颜色的日志

    起因 在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中.而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想 ...

  6. 使用python读取文本中结构化数据

    需求 read some .txt file in dir and find min and max num in file. solution: echo *.txt > file.name ...

  7. python print 连续输出变量加字符串

    a=1 b=2 print(a,'+',b,'=',a+b) 输出:1+2=3

  8. python读取文本数据某一列

    import codecs f = codecs.open('test1 - 副本.txt', mode='r', encoding='utf-8') # 打开txt文件,以'utf-8'编码读取 l ...

  9. python读取文本、配对、插入数据脚本

    #在工作中遇见了一个处理数据的问题,纠结了很久,写下记录一下.#-*- coding:UTF-8 -*- #-*- author:ytxu -*- import codecs, os, sys, pl ...

随机推荐

  1. liToSpan

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  2. Android菜鸟成长记12 -- ORMLite的简单使用

    在我们的开发中,为了提高开发效率,我们一般都会使用到框架,ormilte则是我们必不可少的数据库框架. 对于ORMLite我也是今天才刚刚接触,我们先从一个简单的项目来了解它吧. ORMLite ja ...

  3. Java 零基础之作业小练习

    [练习1] 需求:输入学员的名称及总科目数并显示每项科目成绩的分数,算出总成绩. package demo2; import java.util.Scanner; //先import Scanner语 ...

  4. Python—函数的参数组合

    参数组合 在Python中定义函数,可以用必选参数.默认参数.可变参数.关键字参数和命名关键字参数,这5种参数都可以组合使用.但是请注意,参数定义的顺序必须是:必选参数.默认参数.可变参数.命名关键字 ...

  5. jQuery学习笔记(一)

    1.什么是jQuery? jQuery是一个JavaScript函数库. jQuery是一个轻量级的"写的少,做的多"的JavaScript库. 2.为什么要使用jQuery? 目 ...

  6. bootstrap 模态 modal 小例子

    bootstrap 模态 modal  小例子 <html> <head> <meta charset="utf-8" /> <title ...

  7. JavaScript学习(一)—处理事件

    一.处理事件(一) 事件(event)是用户在访问页面时执行的操作.提交表单和在图像上移动鼠标就是两种事件.当浏览器探测到一个事件时,比如用鼠标单击或按键,它可以触发与这个事件相关联的JavaScri ...

  8. css之absolute绝对定位(技巧篇)

    无依赖的绝对定位 margin,text-align与绝对定位的巧妙用法 例子1:实现左右上角的图标覆盖,如图,

  9. jQuery Select 自动选择默认值

    ////// the Select target Auto Select value extension plugin // // ---------------------------------- ...

  10. 根据第三方库spire.pdf使用指定打印机打印pdf文件

    private void button1_Click(object sender, EventArgs e) { PdfDocument doc = new PdfDocument(); string ...