Можно ли читать stdin как двоичные данные в Python 2.6? Если да, то как?Чтение двоичных данных из stdin
Я вижу в Python 3.1 documentation, что это довольно просто, но возможности для этого в 2.6, похоже, не существуют.
Если методы, описанные в 3.1, недоступны, существует ли способ закрыть stdin и повторно открыть в двоичном режиме?
Update
Просто чтобы быть ясно, я использую «тип» в оболочке MS-DOS к трубе содержимое двоичного файла на мой питона код. Насколько я понимаю, это должно быть эквивалентом команды «cat» Unix. Но когда я проверяю это, я всегда получаю на один байт меньше ожидаемого размера файла.
Update # 2
Во-первых, спасибо за все ответы. Я медленно работаю над настоящим, полезным решением. В конце концов, я все еще пытаюсь создать автономный JAR-файл, который выполняет мой код Python, автоматически проходящий через все аргументы командной строки, не испорченные.
Причина, по которой я иду по маршруту Java/JAR/Jython, состоит в том, что одна из моих основных внешних библиотек доступна только как Java JAR. Но, к сожалению, я начал свою работу как Python. Возможно, было проще конвертировать мой код в Java некоторое время назад, но поскольку этот материал был все совместим, я решил, что попробую проехать через него и доказать, что это можно сделать.
В случае, если кто-то задавался вопросом, это также связано с вопросом, который я задал несколько дней назад.
Packaging and deploying a Jython program from Eclipse
Некоторые из этого вопроса был дан в этом question.
Поэтому я попытаюсь обновить свой первоначальный вопрос с некоторыми заметками о том, что я выяснил до сих пор.
Я тестировал это с помощью «type» и, похоже, работает. То есть, если я опускаю флаг -u, я получаю меньше символов на строку. –
Cool. Спасибо за тест. Итак, только потому, что вы мне так нравитесь, любая идея передать параметр -u через класс JarRunner.java, который используется для запуска Jython через исполняемый JAR-файл? Я знаю. Я никогда не делаю ничего легкого. – thebeav
Согласно документам, настройка переменной окружения PYTHONUNBUFFERED будет иметь тот же эффект. Не уверен, что это помогает. –