将时间字符串转换为整数

时间:2016-05-10 15:25:47

标签: python string

我正在读取一个文件,其中的列时间格式为小时,分钟,秒(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语句,它会在字符串中打印所有相应的时间。但是,当我打印小时,分钟或秒时,它只打印出时间列中最后时间的值。例如,它将打印

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]

非常感谢任何帮助!

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分: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