You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中从命令行输入值创建经纬度变量计算距离

如何从命令行参数获取坐标并赋值给变量

方法1:使用sys.argv(简单直接)

sys.argv会保存命令行传入的所有参数,第一个元素是脚本名,后面的就是你传入的四个坐标参数。只需提取这些参数并转换为浮点数即可:

import sys
from geopy import distance

# 提取命令行参数,跳过第一个元素(脚本文件名)
lat1 = float(sys.argv[1])
long1 = float(sys.argv[2])
lat2 = float(sys.argv[3])
long2 = float(sys.argv[4])

coords_1 = (lat1, long1)
coords_2 = (lat2, long2)

print(distance.distance(coords_1, coords_2).km)

执行方式和你给出的示例一致:

python3.9 distance.py -1 -28 -4 -32

方法2:使用argparse(更规范,带参数校验)

如果需要友好的参数提示、输入校验功能,推荐用argparse模块,它能自动生成帮助信息,还能处理参数错误:

import argparse
from geopy import distance

# 创建参数解析器
parser = argparse.ArgumentParser(description='计算两点间的地理距离')
# 添加四个位置参数,指定类型和说明
parser.add_argument('lat1', type=float, help='第一个点的纬度')
parser.add_argument('long1', type=float, help='第一个点的经度')
parser.add_argument('lat2', type=float, help='第二个点的纬度')
parser.add_argument('long2', type=float, help='第二个点的经度')

# 解析命令行参数
args = parser.parse_args()

# 将解析后的参数赋值给变量
lat1 = args.lat1
long1 = args.long1
lat2 = args.lat2
long2 = args.long2

coords_1 = (lat1, long1)
coords_2 = (lat2, long2)

print(distance.distance(coords_1, coords_2).km)

额外功能

执行时输入错误参数,或者添加-h/--help参数,会自动显示帮助信息:

python3.9 distance.py -h

输出示例:

usage: distance.py [-h] lat1 long1 lat2 long2

计算两点间的地理距离

positional arguments:
  lat1        第一个点的纬度
  long1       第一个点的经度
  lat2        第二个点的纬度
  long2       第二个点的经度

optional arguments:
  -h, --help  show this help message and exit

内容的提问来源于stack exchange,提问作者gwsmelo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:22:10