@iRumba

Что за ошибка при разборе ответа внешней программы?

Извините, питона только начал учить.
есть lib1.py

def RunCmd(cmd):
	import subprocess
	proc = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)
	return proc.stdout.readline()


есть основной скрипт
import lib1
out=lib1.RunCmd("echo 123")
for line in out.split("\n"):
	print(line)


задача функции RunCmd выполнить команду или внешнюю программу. Делал как было предложено в интернетах (причем одно и то же решение нашел в разных источниках), но скрипт выдает ошибку
Traceback (most recent call last):
File "script1.py", line 3, in
for line in out.split("\n"):
TypeError: a bytes-like object is required, not 'str'

Если просто делаю так
import lib1
out=lib1.RunCmd("echo 123")
print(out)

получаю строку
b'123\r\n'
вместо
123

На самом деле разбивать по строкам мне и не требуется, но на вывод хотелось бы получить строку без непечатаемых символов. И что это за конструкция b'...' ?
  • Вопрос задан
  • 927 просмотров
Решения вопроса 1
mututunus
@mututunus
Backend developer (Python, Golang)
b'123' - это массив байт

out.decode('utf-8').split("\n")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
28 апр. 2024, в 20:09
9000 руб./за проект
28 апр. 2024, в 19:54
2000 руб./за проект
28 апр. 2024, в 19:54
5000 руб./за проект