аналог perl hex () в python - PullRequest
       2

аналог perl hex () в python

4 голосов
/ 13 февраля 2012

аналог perl hex () в python как?
У меня есть следующий код Perl:

my $Lon = substr($Hexline,16,8);
say $output_f "Lon: " . hex($Lon) . "";

, где $Hexline имеет формат "6a48f82d8e828ce82b82 ..."

пробую на питоне

Lon = int(Hexline[16:24], 16)
f.write('lon = %s' % str(Lon)+'\n')

это правильно?

РЕДАКТИРОВАТЬ: в случае Perl hex () дает мне десятичное значение.

1 Ответ

7 голосов
/ 13 февраля 2012

Да, чтобы преобразовать шестнадцатеричную строку в целое число, которое вы используете int(hex_str, 16).

Обратите внимание, что при вызове метода write:

  • Вам не нужноконкатенировать две строки, чтобы добавить символ новой строки, вы можете добавить его непосредственно к строке форматирования.
  • Чтобы вывести целое число, вы должны использовать %d вместо %s.
  • Вы нена самом деле нужно вызвать str для преобразования целого числа в строку.

Следовательно, вызов записи может быть записан как:

f.write('lon = %d\n' % Lon)

В качестве альтернативы, вы также можете использоватьformat таким образом:

f.write('lon = {0}\n'.format(Lon))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...