Показать полную графическую версию : Форматированный вывод Python
novashdima
08-05-2013, 18:21
Всем привет.
Потребовалось написать на питоне скриптик, начал изучение, язык понравился, все нравится, но вот в чем дело, при выводе строки я получаю что-то типа:
[b'123\r\n', b'1234\r\n'...]
То есть выводится у меня все списком строк без форматирования, а как бы вывести по нормальному, чтобы применилось форматирование?
novashdima, для начала озвучьте конкретную версию, затем приведите достаточный код.
novashdima
08-05-2013, 19:12
Извиняюсь, Питон 3.3.1
Код вызывает консоль, туда вводит команду и возвращаемое консолью выводит на экран, вывожу простым указанием имени переменной/print, пробовал использовать write - матюкался IDLE.
приведите достаточный код. »
novashdima
08-05-2013, 19:37
proc = subprocess.Popen("snmpwalk -v1 -c public 192.168.1.1 1.3.6.1.2.1.2.2.1.8", shell=True, stdout=subprocess.PIPE)
out = proc.stdout.readlines()
out
и тишина...
И где в этом коде форматированный вывод?
novashdima
08-05-2013, 21:51
Напишу еще проще:
out = 'Hello World!/nPython'
print(out) выведет:
Hello World!/nPython
а мне надо, чтобы вывело:
Hello World!
Python
Какой командой можно такое осуществить? format насколько я понял форматирует только вывод чисел.
novashdima,
>>> out = "Hello\nWorld!"
>>> out
'Hello\nWorld!'
>>> print(out)
Hello
World!
>>>
обратите внимание на \n
В вашем примере он написан в другую сторону /n
novashdima
08-05-2013, 22:26
у меня список строк:
>>> print(out)
[b'IF-MIB::ifOperStatus.1 = INTEGER: up(1)\r\n', b'IF-MIB::ifOperStatus.2 = INTEGER: up(1)\r\n', b'IF-MIB::ifOperStatus.3 = INTEGER: down(2)\r\n', b'IF-MIB::ifOperStatus.4 = INTEGER: up(1)\r\n', b'IF-MIB::ifOperStatus.5 = INTEGER: up(1)\r\n', b'IF-MIB::ifOperStatus.6 = INTEGER: up(1)\r\n']
>>>
обратите внимание на \n
В вашем примере он написан в другую сторону /n »
опечатался
у меня список строк: »
Используйте цикл.
out=[b'IF-MIB::ifOperStatus.1 = INTEGER: up(1)\r\n', b'IF-MIB::ifOperStatus.2 = INTEGER: up(1)\r\n', b'IF-MIB::ifOperStatus.3 = INTEGER: down(2)\r\n', b'IF-MIB::ifOperStatus.4 = INTEGER: up(1)\r\n', b'IF-MIB::ifOperStatus.5 = INTEGER: up(1)\r\n', b'IF-MIB::ifOperStatus.6 = INTEGER: up(1)\r\n']
for i in out:
print(i)
for j in out:
print(j[:-2])
print(out)
novashdima
08-05-2013, 23:11
for j in out:
print(j[:-2]) »
Помогло, но захотел убрать первый символ, написал
print(j[1:-2])
но он убирает первый символ после кавычек, а не 'b'
Есть какая-то функция для замены одной подстроки другой? (или только pop+insert?)
«b» — префикс, а не часть строки. Зачем убирать?
novashdima
09-05-2013, 00:01
Задам вопрос по-другому, мне надо отпарсить все это дело, как бы так это все сделать, учитывая что возвращаемое будет разным, поэтому к индексу символов не привязываемся, то мне надо вытащить подстроки, разделенные пробелами, и потом уже с ними работать.
novashdima, документация вещь хорошая.
По Питону она достаточно вменяемая.
Работа со строками (http://docs.python.org/3.3/library/string.html)
то мне надо вытащить подстроки, разделенные пробелами »
функция split (http://docs.python.org/3.3/library/stdtypes.html#str.split)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.