Python-提取文件中所有中文小程序
问题描述:
从一个txt文件中提取所有中文
思路:
- 打开txt文件
- 读取txt文件中的文本
- 用正则匹配获取中文
- 将其内容写入到另一个文本中
python实现:
代码
#coding=utf-8
import imp
import sys
imp.reload(sys)
sys.setdefaultencoding('utf-8') #设置默认编码,只能是utf-8,下面\u4e00-\u9fa5要求的
import re
pchinese=re.compile('([\u4e00-\u9fa5]+)+?') #判断是否为中文的正则表达式
f=open("data.txt") #打开要提取的文件
fw=open("getdata.txt","w")#打开要写入的文件
for line in f.readlines(): #循环读取要读取文件的每一行
m=pchinese.findall(str(line)) #使用正则表达获取中文
if m:
str1='|'.join(m)#同行的中文用竖杠区分
str2=str(str1)
fw.write(str2)#写入文件
fw.write("\n")#不同行的要换行
f.close()
fw.close()#打开的文件记得关闭哦!
要点:
- 文件的读写 open(filename,type),file.close()
-
正则表达式使用
re 模块是正则表达式的Python实现。它有一个漂亮的函数findall(),接受一个正则表达式和一个字符串作为参数,然后找出字符串中出现该模式的所有地方。在这个例子里,模式匹配的是数字序列。findall()函数返回所有匹配该模式的子字符串的列表。
- 字符串拼接 '|'.join(strabc),在strabc字符串后面添加|。