Python decode() искажает объект байтов (либо возвращает пустую строку, либо только последнюю строку текста) ⇐ Python

Программы на Python
Anonymous
Python decode() искажает объект байтов (либо возвращает пустую строку, либо только последнюю строку текста)

Сообщение Anonymous »

Я хоть убей не могу понять, что здесь происходит...
Я фиксирую вывод утилиты командной строки с помощью subprocess.popen()< /code> и обработка стандартного вывода построчно с помощью процесса.stdout.readline() (который возвращает объект байтов). Я хочу преобразовать каждую строку стандартного вывода в строку, но когда я конвертирую ее с помощью output.decode(), она либо (1) возвращает пустую строку (даже если в объекте байтов есть текст), либо ( 2) возвращает только последнюю строку объекта bytes.
Я просмотрел документацию Python для Code.decode, но не могу понять, почему это происходит и как это исправить. .
Ниже приведен фрагмент кода, который я использую, и несколько примеров выходных данных.
Фрагмент кода:

Код: Выделить всё

output = process.stdout.readline()  # returns a bytes object
if output:
print(str(output))
print(output.decode())
Пример 1 (только последняя строка возвращается функцией decode()):
оператор первой печати ( объект байтов):

Код: Выделить всё

b'0M Scan  C:\\Users\\Me\\Documents\\\r                                                                              \r24 folders, 8 files, 65 bytes (1 KiB)'
второй оператор печати (результат декодирования()):

Код: Выделить всё

24 folders, 8 files, 65 bytes (1 KiB)
(Я ожидал, что это будет именно так:)

Код: Выделить всё

Scan  C:\\Users\\Me\\Documents\\
24 folders, 8 files, 65 bytes (1 KiB)
Пример 2 (decode() возвращает пустую строку):
первый оператор печати (объект bytes ): второй оператор печати (результат декодирования()):
"" (пустая строка )
(Я ожидал, что это будет именно так:) Я попробовал output.decode('utf-8'), но результат тот же. вывод НЕ доступен/не изменяется где-либо еще. Почему это может происходить? Может ли это быть потому, что я работаю на машине с Windows?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -only-last

Вернуться в «Python»