我正在阅读文本文件并提取值以显示经度,但是从文本文件中,它是一个负值,需要它为正。
我所拥有的文本文件样本,格式为(DDDMMSS.SS),名为coordinates.txt:
Longitude : -0780417.04
基本上,它需要359添加到前3个数字(DDD或度数),59到下两个数字(MM或分钟)和60.00到最后4个数字(SS.SS或秒)。
注意:每个数字分割都是负值
所需的输出是:
281 55 43.0
我目前的代码是:
with open('coordinates.txt', 'r'): as f:
for line in f:
header = line.split(':')[0]
if 'Longitude' in header:
longitude = line.split(':')[1].strip()[1:4] + " " + line.split(':')[1].strip()[4:6] + " " + line.split(':')[1].strip()[6:10]
print longitude
我如何将这些添加内容添加到当前代码中?
答案 0 :(得分:1)
首先,将值拉入变量。把它留作一个字符串:
key,value = line.split(':')
接下来,执行检查。我不知道你如何处理积极的经度。我假设你忽略了它们:
if key == 'Longitude' and value.strip().startswith('-'):
接下来,将字符串反汇编为变量:
neglong = value.strip()[1:]
ddd = int(neglong[0:3])
mm = int(neglong[3:5])
ss_ss = float(neglong[5:])
然后对零件进行数学计算,然后根据自己的需要重新组装。
答案 1 :(得分:0)
x = line.split(':')[1].strip()
first = int(x[1:4]) + 359
second = int(x[4:6]) + 59
third = float(x[6:10]) + 60.0
print(first, second, third)