Я хочу распечатать указанный вывод в подпроцессе Вот мой код:
from subprocess import check_output
output = check_output(['python3', 'code.py']).decode('ascii')
print(output)
Результат:
Tom
John
Как я могу напечатать только Tom или только John вместо них обоих?
Я пытался print(output[0]) распечатать Tom, но получаю только T.
Спасибо @OlvinRoght






У вас есть одна строка, и вы можете использовать функцию любой строки.
Вы можете разделить его и создать список с линиями
lines = output.split('\n')
И затем отображать только первую строку
print(lines[0])
@OlvinRoght это не имеет значения. Мне нравится этот.
Я должен упомянуть, что есть специальная функция, которая разделяет строки, даже если вы ее игнорируете.
@OlvinRoght, вы даже можете создать ответ с собственной версией
Давайте посмотрим на шаги, которые вы уже сделали:
check_output(), и он возвращает результат в виде байты;bytes.decode(), который возвращает ул.В результате вы получите многострочную строку. Вы пытались получить доступ к первой строке, используя индекс 0, но вместо первой строки вы получили первый символ. Так случилось, потому что доступ к строке по индексу вернет вам char из этого индекса.
Чтобы получить первую строку, вы должны разделить строки вашей многострочной строки (преобразовать строку в список строк). Есть встроенная функция str.splitlines(), которая делает то, что вам нужно.
Итак, чтобы обновить ваш код, нам нужно добавить еще одну строку перед вашим оператором print():
output_lines = output.splitlines()
После этого вы можете получить доступ к строке по индексу:
print(output_lines[0])
print(output.splitlines()[0])