3
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()
上面的函数用于解析文本并返回七个数字组。我有三个问题。Python使用re模块解析导入的文本文件
- 首先在“读”文件,其中包含完全相同的文本作为= '09 ...等”返回
TypeError expected string or buffer
,我不能阅读一些职位甚至解决。其次,当我尝试将结果写入“写入”文件时,没有任何返回信息,第三,我不知道如何获得与print语句获得的输出相同的输出结果,它是三行每个七个数字是我想要的输出。
这是我第一次用正则表达式,所以请温柔一点!
谢谢。这只返回一行数字09,11,14,34,44,10,11。也许我错误地完成了缩进?我正在阅读的文件如下N1,N2,N3,N4,N5,L1,L2,Jackpot,Wins \ n562,Fri,2013年2月8日,09,11,14,34,44,10, 2013年2月5日星期二,06,25,31,40,45,06,07,19070109,0560,2013年2月1日,星期五,05,21,34, 37,38,01,06,13063500,01555,2013年1月29日,星期二,09,16,26,36,39,02,06,643,1250,2155,2013年1月25日,星期五, 03,10,18,31,37,02,04,37772357,1 \ n557,2013年1月22日,星期二,感谢您的帮助。 – user1478335 2013-02-13 09:54:51
用于行的行: #正则表达式应用到每个行 匹配= re.findall(图案,线) 如果匹配: #确保添加\ n至正确显示时,我们把它写回 #new_line =匹配.group()+'\ n' print(match) new_file.append(match) lines = f.readlines()我把它改成了这里的脚本,这似乎工作。我认为该文件只是一个连续的“句子”,不会像文本编辑器中出现的那样分隔线条? – user1478335 2013-02-13 10:10:29
解决了这个问题,我没有真正测试代码。我把f.write而不是f.writelines这是在文件中写入字符串列表的正确方法。 它只会将相应的编号写入文件。如果你需要不同的输出,那么修改new_line的内容,使其反映在最终名称中。 另外我会建议使用另一个文件名输出文件,它更好地保留原件;) – OmegaOuter 2013-02-13 23:59:05