0

这是我的代码

with open('yvd.txt') as fd:
    name='Trevor Jones'
    input=[x.split('|') for x in fd.readlines()]
    to_search={x[0]:x for x in input}
    print('\n'.join(to_search[name]))

我正在尝试在一个大文件中搜索一个名称并打印以下信息,减去分隔符。这是文本文件的一部分

|特雷弗·琼斯|1|MOV|白人男性|光|10||3000|2500|养老院的老人|

但是,当我运行脚本时,我收到一个关键错误,说“KeyError:'Trevor Jones'”,这没有意义,因为文件中存在 Trevor Jones。

有人有想法么?

4

1 回答 1

3
>>> text = '|Trevor Jones|1|MOV|White Male|Light|10||3000|2500|Old Man Living In Retirement Home|'
>>> x = text.split('|')
>>> x
['', 'Trevor Jones', '1', 'MOV', 'White Male', 'Light', '10', '', '3000', '2500', 'Old Man Living In Retirement Home', '']

在这里你可以看到问题:x[0]''. 我会用text.strip('|').split('|')

如果您想知道为什么会这样,请考虑使用'|'.join(x),它需要能够重建它。

于 2013-03-24T02:00:55.633 回答