2017-01-31 16 views
0

私のコードの目的は、記録されたデータを含むファイルを開いて読み込み、ファイルを閉じずに2行目を印刷することです。以下は私がタイプしたコードです。'NoneType'オブジェクトはサブスクリプト化できません。\ number crunching

with open("dataset.txt", 'r') as f: 
     for line in f: 
      print (line.split("\t"))[1] 

プログラムは実行を終了しますが、以下を返します。最初に印刷されたインデックスは、私が欲しいものです。

['X_Value', 'M.LM.T', 'VapPres.T', 'CCS.F1.T', 'CCS.F2.T', 'CCS.F3.T', 'AB.F4.T', 'CCS.F5.T', 'AB.M1.T', 'AB.M2.T', 'AB.M3.T', 'AB.M4.T', 'AB.M5.T', 'M.LM.R', 'CCS.F1.R', 'CCS.F2.R', 'CCS.F3.R', 'AB.F4.R', 'CCS.F5.R', 'AB.M1.R', 'AB.M2.R', 'AB.M3.R', 'AB.M4.R', 'AB.M5.R', 'Flow.SLM', 'M.LM.R 1', 'VapPres.P', 'VapPres2.P', 'Comment', '', '', '', '\n'] 
Traceback (most recent call last): 
    File "C:/Users/Tristan/Desktop/data informatics/test.py", line 16, in <module> 
    print (line.split("\t"))[1] 
    TypeError: 'NoneType' object is not subscriptable 

私はそれが全体の列を出力

print (line.split("\t")[1]) 

または

print (line.split("\t")[1]) 

を試してみてください。

'NoneType' TypeErrorを削除するにはどうすればよいですか?

+0

'print((line.split(" \ t ")))[1]'これは構文的にはPython 3.xでは間違っています。 'print(line.split(" \ t "))'を印刷してアップロードしてください。あなたが書いた 'print((line.split(" \ t "))[1])'には仕事が必要です。 –

+0

頭をアップしてくれてありがとう@ormi_saadonしかし、この調整をしても同じエラーが返されます。これは、ファイルの行の最後にある ""を読み込んでいるPythonの誤りでしょうか? – vipers356

答えて

0

あなたが行の末尾にスペースを無視するために、次のよう試すことができます。

with open("dataset.txt", 'r') as f: 
    for line in f: 
     print ((line.rstrip().split("\t"))[1]) 

string.rstrip(S [、chars]は)

戻り文字列のコピーを持ちます末尾の文字が削除されました。文字 を省略するかNoneを指定すると、空白文字は削除されます。

+0

これはうまくいきました、ありがとう! @omri_saadon – vipers356

関連する問題