鱼C论坛

 找回密码
 立即注册
查看: 3257|回复: 6

如何从文本中提取含有关键字的行,写入新的文本

[复制链接]
发表于 2017-4-19 22:58:21 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Bio_Wolf 于 2017-4-20 14:32 编辑

有三个文本,
abs.txt    只有一列,就是关键字的列,比如:
T2G2
R3G5
Y7T6
U7T8.1

symobl.txt  含有十万行,20列左右,就是需要提取的文件,比如:
id TCGA1 TCGA2 TCGA3
T2G2
R3G5
Y7T6
U7T8.1
T2G2
R3G5
Y7T6.1
U7T8.1.1
T2G2
R3G5
Y7T6.1.1
U7T8.1
说明:symbol.txt需要提取的是第一列的数据,完全匹配就选出,后面还有几十列是数据

get.txt  需要得到的文件,和symbol.txt的表头和列一样,行是含有key.txt里面所有关键字的行

我写了一个get.py
代码:
f1=open('symbol.txt','r')
f2=open('abs.txt','r')
f3=open('get.txt','w')
keysList=f2.readlines()

for line in f1:
    for key in keysList:
        if key.strip() in line:
            f3.write(line)
            break
f3.close()

这样可以得到结果,但是结果里面有如U7T8.1.1这样的行,提取太多不相关的行,我需要提取U7T8.1却同时把U7T8.1.1也提取了

如何解决这个问题,请小甲鱼大神帮忙解答,谢谢
在线等大家回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-19 23:32:28 | 显示全部楼层
那你就读取整行,然后把整行进行切割,取得第一个关键字,然后让两者对比,相等才保存不就行了。
至于用什么分隔符,就根据你的情况决定呗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-20 04:36:59 | 显示全部楼层
ooxx7788 发表于 2017-4-19 23:32
那你就读取整行,然后把整行进行切割,取得第一个关键字,然后让两者对比,相等才保存不就行了。
至于用什 ...

新手不懂那么高级的语法,有心帮忙,贴代码,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-20 09:07:20 | 显示全部楼层
Bio_Wolf 发表于 2017-4-20 04:36
新手不懂那么高级的语法,有心帮忙,贴代码,谢谢

那我也要知道你两项之间的分隔符是什么啊。
如果是空格的话就如下:
a = '张三 李四  王二麻子'
b=a.split(' ',1)
if b[0]==关键字:
    ...
b的输出就是:
['张三', '李四  王二麻子']
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-20 11:41:24 | 显示全部楼层
问题在于你这句
if key.strip() in line:
你用的是in,也就是包含的意思,所以只要包含关键字就会匹配到,相当于模糊匹配
如果你要精确的话,应该用==,也就是只能是相等才匹配
这样试试
if key.strip() == line:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-20 14:34:02 | 显示全部楼层
还是没有满意的答案,我要选与symbol.txt第一列完全匹配的行,symbol.txt后面还有几十列,都是数据,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-21 08:46:14 | 显示全部楼层
Bio_Wolf 发表于 2017-4-20 14:34
还是没有满意的答案,我要选与symbol.txt第一列完全匹配的行,symbol.txt后面还有几十列,都是数据,谢谢

你要么给一行完整的数据,要么能说清数据组织的结构,说句简单的话,如何区分第一列,第二列你总要说的清楚吧!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-12 15:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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