度换算成度分秒,换算成度分秒,[Python]代码#!
度换算成度分秒,换算成度分秒,[Python]代码#!
[Python]代码
#!/usr/bin/env python# -*- encoding:utf-8 -*-"""@author luoboiqingcai<sf.cumt@163.com>@breif 度转成度分秒输入文件格式:107.0381,29.1470;107.0429,29.1880;107.0654,29.2076;107.1492,29.1774;107.1767,29.1532;107.1518,29.1260;107.0822,29.1201;107.0743,29.1248;107.0566,29.1338;107.0381,29.1470;文件最后没有空行。不要求度形式的坐标小数点后面一定是四位。python num_convert.py [-o outputfilename] inputfilenamepython num_convert.py -v 打印版本信息python num_convert.py -h 打印帮助信息"""import sysimport getoptdef datafromfile(f): ret = [] for line in f: if line: line = line[:-2] num1,num2 = line.split(r',') ret1,ret2 = conv(num1),conv(num2) ret.append([ret1,ret2]) else: ret='\n' return retdef conv(num): ''' bef0: 小数点前面的值 aft012: 转换后小数点后面第一二位数 aft034: 转换后小数点后面第三四伴数 ''' num = eval(num) bef0, aft0 = int(num), num-int(num) aft012, aft034_t = int(aft0*60), aft0*60-int(aft0*60) aft034 = int(round(aft034_t*60)) if aft034 < 10: aft034 = '0'+str(aft034) elif aft034 == 60: aft034='00' aft012 += 1 elif aft034 > 60: print "error:%s"%aft034 if aft012<10:aft012 = '0' + str(aft012) sys.stderr.write("bef0:%s,aft012:%s,aft034:%s;"%(bef0, aft012, aft034)) return "%s.%s%s"%(bef0, aft012, aft034)def main(): try: opts, args = getopt.getopt(sys.argv[1:],"ho:v") except getopt.GetoptError, err: print str(err) sys.exit(2) version = False help_ = False output_t = '' for o,a in opts: if o == '-v': version = True elif o == '-h': help_ = True elif o == '-o': output_t = a else: assert False, "unhandled option" if help_: sys.stdout.write('''num_convert.pyluoboiqingcai<sf.cumt@163.com>basic usage:python num_convert.py [-o outputfilename] inputfilenamepython num_convert.py -v print version informationpython num_convert.py -h print this help. ''') sys.exit(0) if version: sys.stdout.write("version 0.1") sys.exit(0) if len(args) == 0: sys.stderr.write("NEED INPUT FILE!!!") sys.exit(2) else: file_in = args[0] if len(output_t) == 0: output = sys.stderr else: try: output = open(output_t,'w') except: raise with open(file_in,'r') as f: datas = datafromfile(f) #sys.stderr.write(str(datas)) for data in datas: packed_data = ','.join(data)+';\n' output.write(packed_data)if __name__ == "__main__": main()
相关内容
- 利用google地图根据地址批量获取经纬度,,利用google地图
- 上个程序提到的isin,程序提到isin,[Python]代码de
- 提取MD5值一样(或不一样)的文件,和后缀名一样的文
- python发送HTTP请求,python发送请求,GET 方法>>> im
- try...finally 异常,try...finally,异常处理import t
- 文件读写,,文件读写#第九章 文件#
- 字典 暗示,字典,[Python]代码#
- 字典,,字典-基础# 字典#
- python Singleton pattern,pythonsingleton,Python singl
- while循环输出(1-10),while循环输出1-10,[Python]代码i
评论关闭