2016-05-10 16 views
0

我正在閱讀具有小時,分鐘,秒(023456)格式的時間列的文件。該文件中還有其他列,我當時沒有處理。我忽略了其他值。將時間字符串轉換爲整數

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

我的目標是以字符串的形式讀取列,然後將時間拆分爲相應的小時,分​​鍾和秒作爲整數。到目前爲止,我有這樣的:

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]) 

如果我把打印語句中的for循環,它打印所有的相應時間的字符串。但是,當我打印小時,分鐘或秒鐘時,它只打印出時間欄中最後時間的值。例如,它會打印

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

有沒有辦法打印出所有相應的小時,分​​鍾和秒到一個列表中可以得到:

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

任何幫助將不勝感激!

+0

是的,在循環之前創建第二個,最小和小時列表,然後將循環中每個列表的結果附加到循環中的每個列表。 – 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所建議的。用時間創建list,然後用append提供信息。

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()