如何找到位于标题标签之间的文件的标题

我有些文件带有“ TITLE ...”,然后紧随其后的是“ JOURNAL ...”。特定行各不相同,每个文件不是固定的。我试图提取“ ... TITLE ...”和“ ... JOURNAL ...”之间存在的所有信息。到目前为止,我只能拉出包含“ TITLE”的行,但是对于某些文件,这会溅到下一行。

我推断必须使用a = line.find(“ TITLE”)和b = line.find(“ JOURNAL”) 然后在范围(a,b)中设置for i的for循环:它显示698-768之间字符串的所有数值,但仅显示数字而不是字符串。如何显示字符串?然后我该如何清理,使其不显示“ TITLE”,“ JOURNAL”以及这两个字符与我需要的文本之间的空格?谢谢!

这是显示“ TITLE”所在行的单行

<results>
      {
        for $depen in doc("../company/dependent.xml")//dependent
        where $depen/dependent_name=*
        return
         <row>
         <dependent name="{$depen/dependent_name}"/>
          {
            for $emp in doc("../company/employee.xml")//employee[ssn = $depen/essn ]
            return

            <employee>

            <emp fname="{$emp/fname}" lname="{$emp/lname}"/>
                  {
                  for $man in doc("../company/employee.xml")//employee[ssn = $emp/superssn ]
                  return


                 <mgr fname="{$man/fname}" lname="{$man/lname}"/>          


                 }              
            </employee> 
          } 
         </row>   
      }
    </results>

这是当前块,在单独的行上以递增的顺序显示所有这些数字。

def extract_title():
    f=open("GenBank1.gb","r")
    line=f.readline()
    while line:
        line=f.readline()
        if "TITLE" in line:
            line.strip("TITLE   ")
            print(line)   
    f.close()
extract_title()

目前,我的698-768显示如下: 698 699 700 等等... 我想先让他们喜欢698699700, 然后将它们转换为字符串值 那么我想了解如何去除空白以及“ TITLE”和“ JOURNAL”值。谢谢!

liuxiaoming110 回答:如何找到位于标题标签之间的文件的标题

您不需要循环。只需使用切片:

line = 'fooTITLEspamJOURNAL'
start = line.find('TITLE') + 5 # 5 is len('TITLE')
end = line.find('JOURNAL')
print(line[start:end])

输出

spam

另一个选择是拆分

print(line.split('TITLE')[1].split('JOURNAL')[0])

str.split()返回列表。我们使用索引来获取所需的元素。 慢动作:

part2 = line.split('TITLE')[1]
title = part2.split('JOURNAL')[0]
print(title)
,

我不确定我是否能在这里获得想要的成就,但是如果我理解正确,那么您有一个类似于此“ TITLE 659 JOURNAL”的字符串,并且想要在中间获得值吗?如果是这样,您可以这样使用切片符号:

line = f.read()
a = line.find("TITLE") + 5 # Because find gives index of the start so we add length
b = line.find("JOURNAL")
value = line[a:b]
value = value.strip() # Strip whitespace

如果我们现在要返回值或将其打印出来,则会得到:

'659'

类似地,如果您想在Journals之后获得值,则可以再次使用切片符号:

idx = line.find("JOURNAL") + 7
value = line[idx:] # Start after JOURNAL till end of string
本文链接:https://www.f2er.com/3156660.html

大家都在问