2015-10-04 38 views
0

sry im仍然是python的新手。分割一條線,然後搜索字符串

我完整的代碼至今:

從文件
for line in file: 
    line = line.split("\t") 
    if my_var in line[1]: 
     print line[13] 

程序應該做的,是念臺詞。 線具有以下格式:

"word" \t "word" \t "word" ... 

的PROGRAMM應每行分成包含單詞的字符串列表

==>列表=(WORD1,word2和WORD3,...)

然後我希望測試如果索引1處的字給定單詞相匹配,並且如果是這樣我要打印的字在索引13(每行有元件的相同ammount的)

我不什麼明白的是,寫作:

for line in file: 
    line = line.split("\t")  
    word = line[1] 
    print word 

作品,而

for line in file: 
    line = line.split("\t") 
    word = line[1] 
    if my_var in word: 
     print line[13] 

不起作用。

林漂亮舒爾有一個簡單的解決方案,這個問題,我只是無法找到它。

+0

你爲什麼總是在'line [1]'上查找?爲什麼不只是'如果my_var在行:'? – ozgur

+0

也許我對python有一個不好理解,但是我試圖把一個大的字符串(行)拆分爲子字符串,然後看看這個子字符串是否匹配給定的字符串 – ortusolis

+0

你確定每行都包含'\ t'嗎?也許有一些行用空格而不是製表符分隔單詞? – ozgur

回答

1

你的錯誤是因爲下面一行:

print line[16] 

你splited列表中有沒有16項是隻包含4項,你試圖讓16個指標。

+0

我使用的線有17個以上的元素,這可能在我的例外 – ortusolis

相關問題