2017-03-29 10 views
0

私はhdrファイルから行を解析するのが難しいです。下のコードのようにread(data)を出力すると、コマンドウィンドウからhdrファイルの内容が出力されます。しかし、以下のスクリプトのように、行や列を解析しようとすると、コマンドウィンドウに何も出力されません。ASCII HDRファイルの行を解析するpython

import numpy as np 
import matplotlib.pyplot as plt 

f = open('zz_ssmv11034tS__T0001TTNATS2012021505HP001.Hdr', 'r') 
data = f.read() 
print (data) 

for line in f: 
    columns = line.split() 
    time = float(columns[2]) 
    print (time) 

f.close() 

答えて

0

この2行を削除し、もう一度、あなたのコードを実行:

data = f.read() 
print (data) 

は、その後、あなたのループを変更:

for line in f.readlines(): 
    columns = line.split() 
    time = float(columns[2]) 
    print (time) 

は、読み取りの呼び出しは()ファイル全体を通じて読み取り、読み取ったカーソルを去りますファイルの最後に(何も読む必要はありません)。一度に行の特定の番号を読み取るために探している場合は、(readlineのを使用することができます)、readlines()

Why can't I call read() twice on an open file?

+0

が行 '印刷(データ)'は影響を与えませんを削除するポストを読みます。その時点でカーソルはすでにファイルの最後にあります。 – DSM

+0

彼は、 "コマンドウィンドウの下にあるコードのような読み込み(データ)を出力すると、hdrファイルの内容を出力します"というメッセージが表示され、そのカーソルがファイルの最後を指した後にこの行を削除してからもう一度試してみることを意味します – RaminNietzsche

+1

"この行を削除してください:' print(data) '"。それは絶対に何も変わらないでしょう。 – DSM

関連する問題