Я запускаю python 2.6 в Ubuntu Lucent и испытываю проблемы с получением правильной интерпретации знака минус в отрицательных аргументах командной строки, особенно когда вызов сценария инициируется через ОС через Rails (с использованием обратных кавычек).В частности, знак минус появляется как UTF-8.
Когда аргументы командной строки интерпретируются вручную, например:
lng = float(sys.argv[4])
, это вызывает ошибку:
ValueError: invalid literal for float(): ‐122.768
Как хак, я могу обойти это, сопоставив первые три байта как '\ 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'
Любая помощьбыл бы оценен!