如何根据list列表中每一行为开头信息,将另一个data.txt中相关信息(带颜色部分)提取出来,并存储在新的result.txt中

发布于 2021-12-08 05:57:57 字数 2287 浏览 799 评论 10

list列表如下

NAME:[193895-21-5]{A}#R001#
NAME:[193895-26-0]{B}#R001#
NAME:[193895-49-7]{C}#R001#
NAME:[369616-51-3]{D}#R001#
NAME:[416843-85-1]{E}#R001#

data.txt如下 

NAME:[193895-21-5]{A}#R001#
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 113.9629
INTENSITY: 1083
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$
NAME:Unknown
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 152.9435
INTENSITY: 521.0625
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$
NAME:[193895-26-0]{B}#R001#
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 164.9196
INTENSITY: 388.8125
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$
NAME:Unknown
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 214.9177
INTENSITY: 9629.813
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$
NAME:[193895-49-7]{C}#R001#
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 232.8915
INTENSITY: 167.125
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$
NAME:[416843-85-1]{E}#R001#
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 214.9177
INTENSITY: 9629.813
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$
NAME:Unknown
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 214.9177
INTENSITY: 9629.813
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$
NAME:Unknown
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 214.9177
INTENSITY: 9629.813
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$
NAME:[369616-51-3]{D}#R001#
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 214.9177
INTENSITY: 9629.813
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$


 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

牵你的手,一向走下去 2021-12-08 11:45:21

data.txt如下 

NAME:[193895-21-5]{A}#R001#
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 113.9629
INTENSITY: 1083
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$
NAME:Unknown
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 152.9435
INTENSITY: 521.0625
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0

Num Peaks: 6
334.04218    59
335.09433    2976
557.4165    44
575.42139    44
759.46497    920
805.44159    59
 

$$$$
NAME:[193895-26-0]{B}#R001#
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 164.9196
INTENSITY: 388.8125
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 6
334.04218    59
335.09433    2976
557.4165    44
575.42139    44
759.46497    920
805.44159    59

$$$$
NAME:Unknown
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 214.9177
INTENSITY: 9629.813
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0

Num Peaks: 6
334.04218    59
335.09433    2976
557.4165    44
575.42139    44
759.46497    920
805.44159    59
 

$$$$
NAME:[193895-49-7]{C}#R001#
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 232.8915
INTENSITY: 167.125
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 6
334.04218    59
335.09433    2976
557.4165    44
575.42139    44
759.46497    920
805.44159    59
 

$$$$
NAME:[416843-85-1]{E}#R001#
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 214.9177
INTENSITY: 9629.813
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$
NAME:Unknown
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 214.9177
INTENSITY: 9629.813
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$
NAME:Unknown
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 214.9177
INTENSITY: 9629.813
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$
NAME:[369616-51-3]{D}#R001#
SCANNUMBER: 64
RETENTIONTIME: 0.01633333
PRECURSORMZ: 214.9177
INTENSITY: 9629.813
METABOLITEN****AME: 
PRECURSORTYPE: [M+H]+
ISOTOPE: M + 0
Num Peaks: 0

$$$$

累赘 2021-12-08 11:45:19

谢谢你啊,有个地方有点问题啊。data.txt是数据库文件,需要都提取。我把data.txt文件加入了写数据。Num Peaks:下面还有些数据需要一起提取出来。我试了试您这个脚本,Num Peaks:下的数据没有提取出来。麻烦您帮修改下啊

嘦怹 2021-12-08 11:45:18

有个bug,如果list中的目标,再data没有的话 脚本不运行啊

爱的故事 2021-12-08 11:45:18

回复
已将代码修改,并测试,并回答。请试一试。

夜司空 2021-12-08 11:45:05

回复
有空我就会来处理这个bug。很高兴和你交流。

琴流音 2021-12-08 11:44:57

回复
@tcxu : 你也想一想如何是好。你看懂代码了吗?

把昨日还给我 2021-12-08 11:04:17

1.    在 data.txt 文档中,开头为:
NAME:[193895-21-5]{A}#R001#
NAME:[369616-51-3]{D}#R001# 

的相关信息,为什么不带颜色? 它们的相关信息,是否也要存储在新的result.txt中?

2.    "$$$$" 不是相关信息,不必存储到新的result.txt中, 但用作分隔不同信息的记号,又有必要存进。 对吗?

3.   下列代码,是否附合你的要求?

fo = open("data.txt", "r")
list = open("list.txt", "r")
result = open("result.txt", "w")

str=""
input=[]
checkList=[]

for line in list.readlines():
    line = line.strip()
    checkList.append(line)

for line in fo.readlines():
    line = line.strip()
    input.append(line)

for line in checkList:
    n = input.index(line)
    for line in input[n: n+9]:
        str +=line + 'n'
    str +='$$n'
result.write(str)

fo.close()
list.close()
result.close()

 

凯凯我们等你回来 2021-12-08 09:58:47

万分感谢啊 。perfect

风苍溪 2021-12-08 07:47:05

回复
我已经将代码稍作修改,以保证:如果 list.txt 中的目标,在 data.txt 没有的话, 脚本也不会停止运行。并添加了加 注释。请进一步测试。

疑心病 2021-12-08 07:21:52
fo = open("data.txt", "r")
list = open("list.txt", "r")
result = open("result.txt", "w")

str=""
input=[]
checkList=[]

for line in list.readlines():# 读取 list.txt 的全部内容
    line = line.strip()# 去掉每行首尾的空格
    checkList.append(line)# 将 每行内容 存入列表 checkList

for line in fo.readlines():# 读取 data.txt 的全部内容
    line = line.strip()# 去掉每行首尾的空格
    input.append(line)# 将 每行内容 存入列表 input

for line in checkList:# 逐行处理 list.txt 所列的内容
    try:
        n = input.index(line)# 按 list.txt 的每行内容,查询 data.txt 保存的有关信息
    except ValueError:#  处理没找到内容的场景
        print("没有找到 " + line + " 的相关信息。")# 输出错误信息
    else:# 否则逐行将信息存入(追加到)字符串 str 尾
        value = input[n]
        while (len( value) > 1) and value !='$$':# 若遇到 "$$", 则结束添加任务
            str += value+"n"
            n=n+1
            value = input[n]
        str +='n$$nn'

result.write(str)# 最终,将字符串的内容,写到文档 result.txt 之中

fo.close()
list.close()
result.close()

 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文