找到一行并阅读Python中的下一行

2024-06-13 20:40:51 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,在Python中,我解码一个url并找到一个如下所示的报告:

<title>Canada Olympic Park</title>

<description>Open  / Past 48 Hours: 0cm / Primary:  / Base Depth: 85cm</description>

<title>Castle Mountain</title>

<description>Open  / Past 48 Hours: 1cm / Primary:  / Base Depth: 179cm</description>

<title>Lake Louise</title>

<description>Open  / Past 48 Hours: 2cm / Primary:  / Base Depth: 162cm</description>

如何使用find()定位感兴趣的位置并阅读下一行以进行进一步编程? 基本上如何找到一个具体的行,并阅读下一行我刚刚找到的行?在

谢谢。在


Tags: urlparkbasetitle报告descriptionopen解码
3条回答

您可以使用xml.dom.minidom

假设xml数据在一个文件中

from xml.dom.minidom import parse

xmldata = open("abc.txt", "r")

domdata = parse(xmldata)

def getDescriptionData(title):
    titledata = [x.toxml().lstrip('<title>').rstrip('</title>') for x in domdata.getElementsByTagName('title')]
    descriptiondata = [x.toxml().lstrip('<description>').rstrip('</description>') for x in domdata.getElementsByTagName('description')]

    l =  [v for (x, v) in zip(titledata, descriptiondata) if x == title]
    if l:
        return l[0]
    return None

print getDescriptionData('Lake Louis')

输出:

^{pr2}$

{a1}你也可以看看

def getLine(source, string):
    source = source.split('\n')
    for index, item in enumerate(source):
        if string in item:
            return source[index + 1]

尝试使用itertools.dropwhile():

Python 2.7.3 (default, Sep  4 2012, 20:19:03) 
[GCC 4.2.1 20070831 patched [FreeBSD]] on freebsd9
Type "help", "copyright", "credits" or "license" for more information.
>>> import itertools
>>> src="foo\nbar\nbas\n"
>>> notfoundyet=True
>>> def findthing(x):
...     global notfoundyet
...     currently=notfoundyet
...     notfoundyet=x!="bar"
...     return currently
... 
>>> itertools.dropwhile(findthing, src.split("\n"))
<itertools.dropwhile object at 0x8017d92d8>
>>> for x in _: 
...     print x
... 
bas

相关问题 更多 >