txt文件格式如下:
area time data
1 1383260400000 11.02836638168102645352
1 1383261000000 11.12710087567367445160
1 1383261600000 10.89277060279109754504
1 1383262200000 8.62242459098974833864
1 1383262800000 8.00992746244575570813
1 1383263400000 8.11841955408960025409
1 1383264000000 8.02626974851215102547
1 1383264600000 8.51417857718389292643
······
其中area的值从1到10000,time的值为UTC格式的时间,data为需要的数据
现在想把time的时间改为本地时间,我Python新手一个,尝试写了一个程序,如下:
#!user/bin/env python3 # -*- coding: gbk -*- import time file = open('day00.txt', 'a+') file.close file = open('day0.txt','r') line = file.readline() time1 = [] #时间 data1 = [] #data area = [] while 1: line = file.readline() if line == '': break a = line.split() if a[0]=='area': break if int(a[0]) == 1: area.append(a[0]) time1.append(a[1]) data1.append(a[2]) elif int(a[0]) < 10001: if a[0] not in area: area.append(a[0]) file1 = open('day00.txt', 'a+') for i in time1: l_time = time.localtime(int(i)/1000) #ltime=time.localtime(1479285300) timeStr=time.strftime("%Y-%m-%d %H:%M:%S", l_time) file1.write("%-8s%-16s%.20f\n" % (area[area.index(a[0])-1], timeStr, float(data1[time1.index(i)]))) file1.close file1 = open('day00.txt', 'r') file1.close time1 = [] data1 = [] else: time1.append(a[1]) data1.append(a[2]) else: break file.close file = open('day00.txt', 'a+') for j in time1: l_time=time.localtime(int(i)/1000) #ltime=time.localtime(1479285300) timeStr=time.strftime("%Y-%m-%d %H:%M:%S", l_time) file.write("%-8s%-16s%.20f\n" % (a[0], timeStr, float(data1[time1.index(j)]))) file.close # file = open('day00.txt', 'r') # file.close
代码能跑通了
在一位大神的帮助下已经解决啦,谢谢~
学会看报错啊兄弟。这里说 area 无法转成 int,你就该想到应该先把第一行表头排除掉。