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

样本如下:

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. Device eth0 does not seem to be present, delaying initialization. 问题

    今天在复制vmware的时候 出现网卡无法启动 报错显示 Device eth0 does not seem to be present, delaying initialization. 这个错误原 ...

  2. 初学c# -- 学习笔记(七) RichTextBox支持GIF

    园子里许明吉博客写的一篇,刚好用到这个,写的非常好.转过来了 不过在应用中也有一些问题,win10下不能中文输入,凑合着进行了修改, 下面是原来的代码: private void button2_Cl ...

  3. python Day01

    Python Day01 Python 简介 介绍 Python 是一种面向对象.直译式的计算机程序设计语言,也是一种功能强大的通用型语言,已经有将近二十年的发展历史,成熟稳定.包含了一组完善而且容易 ...

  4. 【NoSql】Redis

    [NoSql]Redis 一. 文档 1. 官网 2. Windows 安装包 3. C# Driver a. ServiceStack.Redis 最新版本是收费的 b. StackExchange ...

  5. Ruby Unit Test

    require 'test/unit' module Test::Unit::Assertions def assert_equal_unorder(exp, act, msg = nil) # ms ...

  6. iOS中坐标转换

    坐标转换,可以用UIVIew的方法 //由要转换坐标view的superView执行该方法,rect为待转换view的frame,view是要显示到哪儿的 - (CGRect)convertRect: ...

  7. 现在还需要测试或者QA人员吗?

    Facebook没有专门的测试人员,都是开发自己测:微软裁掉了测试部门,改由开发测:google有少量的测试人员,主要做测试自动化框架开发或者性能.安全等专项测试,测试用例还是开发人员自己设计自己跑( ...

  8. Java程序调用javascript等脚本的实现方法

    public static void main(String[] args) throws FileNotFoundException, ScriptException, NoSuchMethodEx ...

  9. js jQuery中文字符串比较

    先说下普通字符串(英文)比较: 一般使用双等来判断(==),如果还需要类型相同那么就用三等(===) 1. 双等(==)是完全向后兼容的,如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转 ...

  10. 淌水 UE4的shootergame 案例 准备

    从毕业到现在,从GIS到游戏. 先记录一下cesium源码研究停止了一个多月了,还是有点放不下,等有机会一定研究透彻.感谢一下法克鸡丝博主. 好,研究了近两个月的游戏整体制作,熟悉了maya\unfl ...