2016-09-08 9 views
0

ユニークな状況を知って、私は解決策を知っていけない、この問題を知っています。はTypeError:リストインデックスが整数ではなく、STRでなければなりません。問題は、ない答え

import string 

timefile = open('lasttimemultiple.txt','r+')#opens the file that contains the  last time run 
lasttime = timefile.read()#reads the last time file 
items= int(2) 

splitlines = string.split(lasttime,'\n') 
print splitlines[items][0:2] 
timefile.close() #closes last time 
PullType = '00' 
datapt = '01' 
for items in splitlines: 
if splitlines[items][0:2] == PullType: 
    datapt = splitlines[items] 
else: 
    print '' 

print datapt 

私は私の問題は、私は、整数対呼び出していますインデックスとして「アイテム」を使用しています知っているが、私は非int型を使用せずに、データを介して動作するための基準を使用する方法がわかりません変数名。

これを実現する方法はありますか? おかげ

+0

変更 'かの分割線[商品] [0:2] == PullType:' 'となら商品[0:2] == PullType:'と '' datapt = items'と 'datapt =分割線[商品]?私たちは、あなたがそれから抽出しようとしているどのようなファイルの内容を知っているとしていないので - 私たちは推測することができます...これは働いていた – alfasin

答えて

0

あなたは、実際のトレースバックを表示する必要があります。あなたが持っていた場合は、エラーがこの行であることを見ているだろう:

itemsはここに前の行にforループによって再定義されているためです
if splitlines[items][0:2] == PullType: 

。 Pythonのforループでは、変数はカウンタではなく、その反復の実際の項目です。したがって、最初の反復では、itemsだからそれは文字列ではない整数で等分割線の最初の要素です。

if items[0:2] == PullType: 

は(また、あなたがより良い変数名を考える必要があります:item、ないitemsする必要があることを)修正はそれを直接使用することです。

+0

、ありがとう!また、可変名を変更しました! –

関連する問題