2016-05-10 7 views
0

時間、分、秒(023456)の形式の時刻の列を持つファイルを読み込んでいます。ファイルには、私が当時扱っていない他の列があります。私は他の値を無視しました。時間文字列を整数に変換する

020746 10 -1 
020823 5 -1 
020839 6 -1 
020812 6 0 

私の目標は、列を文字列として読み込み、時間を整数として対応する時、分、秒に分割することです。

私はforループの中でprint文を入れた場合
f = open(file, 'r') 
for line in f: 
    line = line.strip() 
    columns = line.split() 
    time = columns[0] 
f.close() 

hour = int(time[0:2]) 
minute = int(time[2:4]) 
second = int(time[4:6]) 

が、それは文字列に対応する時間のすべてを印刷します。これまでのところ、私はこれを持っています。しかし、時、分、秒のいずれかを印刷すると、最後の時間の値だけが時間列に表示されます。

print(hour) 
[2, 2, 2, 2] 
print(minute) 
[7, 8, 8, 8] 
print(second) 
[46, 23, 39, 12] 

任意の助けをいただければ幸いです。例えば、それは取得するには、リストに対応する時、分、秒のすべてをプリントアウトする方法はあり

print(hour) 
2 
print(minute) 
8 
print(second) 
12 

印刷されます!

+0

はい、ループの前に2番目、分、時間のリストを作成し、ループの各リストにiの結果を追加します。 – PyNoob

答えて

0

値を保存して印刷するための新しいリストを作成する必要があります。ここに私がしたことがあります。

hourlist,minutelist,secondlist=[],[],[] 

f = open("newtext.txt", 'r') 
for line in f: 
    line = line.strip() 
    columns = line.split() 
    time = columns[0] 
    hourlist.append(int(time[0:2])) 
    minutelist.append(int(time[2:4])) 
    secondlist.append(int(time[4:6])) 
f.close() 

hour = int(time[0:2]) 
minute = int(time[2:4]) 
second = int(time[4:6]) 

print hourlist, minutelist,secondlist 
0

pyNoobで提案されています。時間とappendとのlistを作成してください。

time_list = [] 
f = open(file, 'r') 
for line in flash: 
    line = line.strip() 
    columns = line.split() 
    time = columns[0] 
    hour = int(time[0:2]) 
    minute = int(time[2:4]) 
    second = int(time[4:6]) 
    time_list.append(hour, minute, second) 
f.close() 
関連する問題