python中re模块怎么导入_Python使用re模块来解析导入的文本文件

def regexread():

import re

result = ''

savefileagain = open('sliceeverfile3.txt','w')

#text=open('emeverslicefile4.txt','r')

text='09,11,14,34,44,10,11, 27886637, 0\n561, Tue, 5,Feb,2013, 06,25,31,40,45,06,07, 19070109, 0\n560, Fri, 1,Feb,2013, 05,21,34,37,38,01,06, 13063500, 0\n559, Tue,29,Jan,2013,'

pattern='\d\d,\d\d,\d\d,\d\d,\d\d,\d\d,\d\d'

#with open('emeverslicefile4.txt') as text:

f = re.findall(pattern,text)

for item in f:

print(item)

savefileagain.write(item)

#savefileagain.close()

上面写的函数解析文本并返回七个数字的集合.我有三个问题.

>首先,包含与text = ’09,…等完全相同的文本的’read’文件返回一个TypeError期望的字符串或缓冲区,即使阅读了一些帖子也无法解决.

>其次,当我尝试将结果写入’write’文件时,不返回任何内容

>第三,我不知道如何获得与print语句相同的输出,这是三行七个数字,这是我想要的输出.

这是我第一次使用正则表达式,所以请温柔!

解决方法:

这应该做的伎俩,检查评论以解释我在这里做什么=)

祝好运

import re

filename = 'sliceeverfile3.txt'

pattern = '\d\d,\d\d,\d\d,\d\d,\d\d,\d\d,\d\d'

new_file = []

# Make sure file gets closed after being iterated

with open(filename, 'r') as f:

# Read the file contents and generate a list with each line

lines = f.readlines()

# Iterate each line

for line in lines:

# Regex applied to each line

match = re.search(pattern, line)

if match:

# Make sure to add \n to display correctly when we write it back

new_line = match.group() + '\n'

print new_line

new_file.append(new_line)

with open(filename, 'w') as f:

# go to start of file

f.seek(0)

# actually write the lines

f.writelines(new_file)

标签:python,regex,python-3-x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值