2013-03-24 87 views
0

這裏是我的代碼主要錯誤在Python

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])) 

我試圖尋找一個名字在一個大文件並打印下面的信息,減去分隔符。這是文本文件的一部分

| Trevor Jones | 1 | MOV | White Male | Light | 10 || 3000 | 2500 |老人生活在退休家庭|

但是,當我運行該腳本時,我得到一個關鍵錯誤,指出「KeyError:'Trevor Jones'」,因爲Trevor Jones存在於文件中,所以沒有意義。

任何人有任何想法?

+3

打印出'to_search',看看它的樣子。 – Blender 2013-03-24 02:00:43

回答

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),它需要能夠重建它。

+0

這是完美的!謝謝! – user1985351 2013-03-24 02:04:04