В линуксе при запуске python скрипта, терминал выводит \n где должен быть переход строки
Код программы:
#!/usr/bin/env python
import subprocess
ifconfig_result = subprocess.check_output(["ifconfig", "eth0"])
print(ifconfig_result)
┌──(kali㉿kali)-[~/PycharmProjects/Hello] └─$ python error.py b'eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet6 fe80::221:32ff:fe44:5566 prefixlen 64 scopeid 0x20\n ether 00:22:33:44:55:66 txqueuelen 1000 (Ethernet)\n RX packets 30 bytes 13460 (13.1 KiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 811 bytes 80792 (78.8 KiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\n'
Не знаю даже что пробовать. В гугле нужной информации не нашёл
Ответы (1 шт):
ifconfig_result — это байтовый массив (bytearray). На это указывает, в частности, литера b перед выводом.
Чтобы нормально вывести его в терминал нужно конвертировать его в строку с помощью decode(). На большинстве систем с локалью utf-8 или если массив содержит только latin1-символы будет достаточно:
print(ifconfig_result.decode())
Более переносимым вариантом будет являться:
import sys
print(ifconfig_result.decode(sys.getdefaultencoding())
