Python读取文本,输出指定中文(字符串)
因业务需求,需要提取文本中带有检查字样的每一行。
样本如下:
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读取文本,输出指定中文(字符串)的更多相关文章
- yes---重复输出指定的字符串
yes命令在命令行中输出指定的字符串,直到yes进程被杀死.不带任何参数输入yes命令默认的字符串就是y. 语法 yes(参数) 参数 字符串:指定要重复打印的字符串. 实例 [root@localh ...
- Python 读取和输出到txt
读txt文件 python常用的读取文件函数有三种read().readline().readlines() read() #一次性读取文本中全部的内容,以字符串的形式返回结果 with open(& ...
- python 读取文本
将文本转换到NumPy 数组中,做机器学习或其他任何任务,文本处理的技能必不可少.python 实现实现了很精简强大的文本处理功能: 假设 文件 traindata.csv 中有数据 1000行,3列 ...
- python读取文本txt文件乱码问题
python2的编码实在是个头疼的问题,编码问题也将作为一个长期的话题,遇到问题随时补充. 这次的问题比较简单,是在做词云wordcloud的时候发现的,作用就是从文本文件中读取文字,将其制作成词云. ...
- python项目中输出指定颜色的日志
起因 在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中.而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想 ...
- 使用python读取文本中结构化数据
需求 read some .txt file in dir and find min and max num in file. solution: echo *.txt > file.name ...
- python print 连续输出变量加字符串
a=1 b=2 print(a,'+',b,'=',a+b) 输出:1+2=3
- python读取文本数据某一列
import codecs f = codecs.open('test1 - 副本.txt', mode='r', encoding='utf-8') # 打开txt文件,以'utf-8'编码读取 l ...
- python读取文本、配对、插入数据脚本
#在工作中遇见了一个处理数据的问题,纠结了很久,写下记录一下.#-*- coding:UTF-8 -*- #-*- author:ytxu -*- import codecs, os, sys, pl ...
随机推荐
- SqlServer传输数据到ORACLE,SSIS
一.配置32位ODBC 配置tnsname文件,增加ORACLE数据库 打开32位ODBC 二.创建一个PROJECT并配置数据源 1.创建一个project 三.数据传输SSIS,工作流 四.为DT ...
- Myeclipse2016部署tomcat服务(别的服务类似)配置环境
1.在工具MyEclipse的项目管理菜单中,右单机找Properties或者快捷键alt+enter,(或者直接搜索Runtimes)myEclipse/Targeted Runtimes 2.ne ...
- linux命令(2):cd命令
Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. 1. ...
- 完整地mybatis + springmvc用checkbox实现批量删除
因为自己在网上找了半天,都找不到完整地代码(脑袋笨,不会变通到自己项目里),所以在这里记下了近乎完整的代码 前端代码 <span style="cursor:pointer;" ...
- Expected one result (or null) to be returned by selectOne(), but found 2
这个问题在于你查询sql返回结果是多个值.一个集合,但是你在service的实现层的dao都调用了.get方法.而是应该使用.getlist方法等.
- include使用中注意的问题
发现include文件不必添加,但是一定要放在工程路径下,不然就找不到,或者也可以在文件上写出完整的路径. 可以修改路径为'include "../src/enc_defines.v&quo ...
- 010editor 破解 扩展
1. 注册机注册,注册机搜一下吧 (破解算法各版本通用) 2. 绕过网络验证,每次关闭010editor时都会网络验证,并将验证结果写道本地,所以: HKEY_CURRENT_USER\Softwar ...
- nginx日志轮巡切割
通过编辑脚本的方式来实现日志每日以及每天的切割纪录.可以通过计划任务的方式实现每天执行脚本,具体情况需要更加实际情况 vim /root/cut_nginx_log.sh #!bin/sh Datef ...
- easyui 下拉树改造
<select id="cc" style="width: 250px"></select> <div id="sp&q ...
- Beta-1阶段成员贡献分(代组长更新)
组名:天天向上 组长:王森 小组成员:张金生.张政.林莉.胡丽娜 小组贡献分如下:王森5.2 张金生5.1 张政 5.0 林莉 4.9 胡丽娜 4.8 成员得分如下: 成员 基础分 表现分 ...