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 に答える