2016-10-17 18 views
0

私は以下のコードで12行目の問題を抱えていますが、 'int'オブジェクトのエラーはサブスクリプトできません。私はそれを解決する方法だけではわかりません。どんな助けもありがとう。ファイルから特定の単語を削除します。

fname = input('Enter File:') 
fhand = open(fname) 
lst = list() 
words = 0 

for line in fhand: 
    line = line.strip() 
    if not line.startswith("Subject:Sakai"): continue 
    words = line.split() 
    revNumber = words[4] 

if not words[6] =="in ": 
    source = words[6].split("/") 
    finalSrc = source[0] 
    lst.append((revNumber,finalSrc)) 

else: 
    source = words[7].split("/") 
    finalSrc = source[0] 
    lst.append((revNumber,finalSrc)) 

for revNumber,finalSrc in lst: 
    print(revNumber,finalSrc) 

print("There were",len(lst),"Subject lines in the file")enter code here 
+0

'words = 0'を' words = [] 'に変更します。 –

+0

@WayneWernerは、IndexError、[[] [6]'を返します。 –

+0

ああ、本当です。おそらく 'None'がより初期設定になるでしょう:P(もちろん問題は解決しませんが) –

答えて

1

言葉はまだ整数でないリストを指しているので明らかに何行.startswith("Subject:Sakai")はそうあなたがを継続し、あなたがwords = line.split()に到達しないを打っておく、あなたのコードの先頭でwords = 0を持っているので、if not words[6] =="in "があなたのエラーが発生していません。

あなたがループ内でチェックを行う
for line in fhand: 
    line = line.strip() 
    if not line.startswith("Subject:Sakai"): 
     continue 
    words = line.split() 
    revNumber = words[4] 

    if not words[6] =="in ": 
     source = words[6].split("/") 
     finalSrc = source[0] 
     lst.append((revNumber,finalSrc)) 

    else: 
     source = words[7].split("/") 
     finalSrc = source[0] 
     lst.append((revNumber,finalSrc)) 

for revNumber,finalSrc in lst: 
    print(revNumber,finalSrc) 

In [1]: words = 0 

In [2]: words[6] 
--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-2-fe50e40ed82c> in <module>() 
----> 1 words[6] 

TypeError: 'int' object is not subscriptable 

私はあなたのコードは、実際にはもっとようであることを意味していると思います。また、Pythonで変数を宣言する必要がないので、words = 0を完全に削除することができます。あなたはまだ問題がありません。startswith("Subject:Sakai")という行はありませんが、自分自身を把握しなければならないコンテンツは見ません。先頭の空白を取り除く必要がある場合があります。if not line.lstrip().startswith("Subject:Sakai"):、またはinを使用することが考えられます。

+0

あなたの助けていただきありがとうございます。私は、添え字のないエラーを修正した単語= 0を削除しました。その後、私は残りの問題を修正することができました!再度、感謝します! – Avery

関連する問題