鱼C论坛

 找回密码
 立即注册
查看: 1921|回复: 4

正则表达式提取

[复制链接]
发表于 2017-6-13 16:30:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想用正则表达式提取txt文件中小括号中的内容,如文件名为123.txt,想要提取小括号中的内容,如txt中保存了3行5列的数据
0 - ( 0.17,  84) ,  1 - ( 0.15, 107) ,  2 - ( 0.09, 118)
0 - ( 0.18,  73) ,  1 - ( 0.13,  91) ,  2 - ( 0.11, 135)
0 - ( 0.19,  54) ,  1 - ( 0.14,  92) ,  2 - ( 0.13, 127)
想要把上面括号中的内容用正则表达式提取出来,把逗号去掉,存放在另外一个data.txt文件中,文件中同样是一个3行的数据形式
0.17 84 0.15 107 0.09 118
0.18 73 0.13 91 0.11 135
0.19 54 0.14 92 0.13 127
请问哪位大神指导一下怎么编写该段代码啊?感激不尽!!!
}D53Pz221AH1ZCQF`OSYY.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-13 16:46:08 | 显示全部楼层
3行5列?
你这个3行5列是怎么数的?看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-13 17:05:40 | 显示全部楼层
写了一个,我没有试,你自己去试试看行不
import re

def savedata(filename,savefile):
  with open(filename,"r") as f:
    lines = f.readlines()
  for each in lines:
    line_datas = re.findall("\((.*?,.*?)\)",each)
    new_datas = [i.replace(" ","").replace(","," ") for i in line_datas]
    str_datas = " ".join(new_datas)
    with open(savefile,"w") as f:
      f.write(str_datas+"\n")
    print(str_datas)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-6-16 17:49:28 | 显示全部楼层
首先真的非常感谢您帮我解决这个问题,程序有点问题,我最后用np.savetxt("data.txt",Data)对生成的列表Data进行成功保存了,但是最后的结果都是以科学计数法的形式保存的,我想再问一下怎么样设置np.savetxt()才能保存成原来带小数点的形式呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-16 17:50:29 | 显示全部楼层
gopythoner 发表于 2017-6-13 16:46
3行5列?
你这个3行5列是怎么数的?看不懂

写错了,是6列,就是把小括号中的数字提取出来,弄成一个矩阵,保存到.txt中,谢谢,嘻嘻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 18:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表