合并两个数据库(从另一个文件替换文件中的某些字符串)

时间:2019-05-24 11:06:08

标签: python python-3.x replace

我正在尝试根据另一个较小的8,000地震档案,替换12,000事件的地震档案中的某些字符串(坐标)。我知道较小文件中的地震发生日期与较大文件中的日期匹配,但是我需要重新定位的事件。

我尝试过的是在较小的文件(具有不同的文本结构)上循环,并提取事件的发生时间,以将其与较大的文件中的事件进行比较。如果两个事件的时间接近或相同,则应在较大的文件上替换lat,lon。

for l in reloc:
    year=int(l[20:22])
    month=int(l[22:24])
    day=int(l[24:26])
    hour=int(l[26:28])
    minute=int(l[28:30])
    lat=float(l[53:60])
    lon=float(l[67:75])
    prof=float(l[83:90])
    if year<=18:
        year=year+2000
    if month<10:
        month='0'+str(month)
    if day<10:
        day='0'+str(day)
    if hour<10:
        hour='0'+str(hour)
    if minute<10:
        minute='0'+str(minute)
    time_rel=str(year)+'-'+str(month)+'-'+str(day)+' '+str(hour)+':'+str(minute)+':00.'
    pytime_rel=util.str_to_time(time_rel) #String to time on smaller file
    for line in meca:
        if line.startswith('latitude')==True:
            lat_mec=float(line[11:16])
        if line.startswith('longitude')==True:
            lon_mec=float(line[12:19])
        if line.startswith('time')==True:
            time_mec=line[7:27]
            pytime_meca=util.str_to_time(time_mec) #String to time on big file
newfile.close()

预期结果:仅在8,000个与较小文件相对应的事件中,新文件包含12,000个事件以及新的经纬度。 实际结果:循环似乎没有将较小文件中的每个事件时间与较大文件中的事件时间进行比较。请帮助我比较并保存新文件。

0 个答案:

没有答案