我在 Ubuntu Lucent 上运行 python 2.6 并且无法正确解释负命令行参数中的减号,特别是当通过 Rails 通过操作系统启动对脚本的调用时(使用反引号)。特别是,减号似乎以 UTF-8 的形式出现。
当手动解释命令行参数时,如下所示:
lng = float(sys.argv[4])
它触发错误:
ValueError: invalid literal for float(): ‐122.768
作为 hack,我可以通过将前三个字节匹配为 '\xe2'、'\x80' 和 '\x90' 并用我自己的负号替换它们来解决这个问题。
当通过 argparse(1.2.1 版)解释命令行参数时,如下所示:
parser.add_argument('--coords', metavar='Coord', dest='coordinates', type=float, nargs=3, help='Latitude, Longitude, and Altitude')
它触发错误:
sC.py: error: argument --coords: invalid float value: '\xe2\x80\x90122.76838'
任何帮助,将不胜感激!