base64 png в Python в Windows

Не полный ответ, но лучший / правильный способ получить версию:

curl -s https://api.github.com/repos/notepadqq/notepadqq/releases |
    jq -r '[ .[] | select(.tag_name | contains("v")) | .tag_name][0]'

Вывод:

v1.4.0

Примечание

Не анализировать JSON с grep | tr и т.д ... Используйте правильный парсер:

11
задан directedition 10 March 2009 в 19:25
поделиться

2 ответа

Откройте файл в режиме двоичного счета:

open("icon.png", "rb")

Я не очень знаком с Windows, но я вообразил бы то, что происходит, то, что файл содержит символ (0x1A), что Windows интерпретирует как конец файла (по причинам прежней версии), когда он открыт в текстовом режиме. Другая проблема - то, что открытие файла в текстовом режиме (без 'b') в Windows заставит окончания строки быть переписанными, который будет обычно повреждать двоичные файлы, где те символы на самом деле не указывают на конец строки.

26
ответ дан 3 December 2019 в 02:02
поделиться

Для увеличения ответа от Miles первые восемь байтов в файле PNG особенно разработаны:

  • 89 - первый байт является проверкой, которая укусила 8, не был разделен
  • "PNG" - позвольте кому-то считать, что это - формат PNG
  • 0d 0a - индикатор конца строки DOS, чтобы проверить, был ли DOS-> преобразование Unix
  • 1a - символ конца файла DOS, чтобы проверить, что файл был открыт в режиме двоичного счета
  • 0a - символ конца строки Unix, чтобы проверить, был ли Unix-> преобразование DOS

Ваш код останавливается в 1a, как разработано.

9
ответ дан 3 December 2019 в 02:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: