首页 > 解决方案 > 在文本文件中搜索值,然后找到值所在的标头

问题描述

我有一些拼车信息的文本文件,其中汽车的司机在顶部,乘客列在司机下方并缩进,我想要一个可靠地找到乘客的系统,然后它会找到谁是车司机。这是它的外观示例。

Car: Steven
    Jerry
    Elaine
    George
Car: Ross
    Rachel
    Joey
Car: Steve
    Karl
    Eric
    Red
    Ryan

我想要一个函数,它采用 Eric 之类的名称并返回 Steve,或者采用 Joey 并返回 Ross。该文件实际上会更长,但这是它看起来的一个片段。

标签: pythontext

解决方案


假设您可以将所有内容都放入内存中,并且数据看起来像

data = """Car: Steven
    Jerry
    Elaine
    George
Car: Ross
    Rachel
    Joey
Car: Steve
    Karl
    Eric
    Red
    Ryan
"""

然后您可以通过在以下位置拆分来定义一个函数"Car:"

def find_driver(data, person):
    for people in [car.split() for car in data.split("Car:")[1:]]:
        if person in people:
            return people[0]
    return None

然后

find_driver(data, "Eric")
find_driver(data, "Joey")

返回想要的结果。

注意分割"Car:"总是会给出一个空白的第 0 个元素,所以我们将其切掉。然后,我们使用正常拆分数据(在换行符和空格处)car.split()。现在我们只搜索一个人在什么车里。


推荐阅读