Я хочу, чтобы переменной get_version было присвоено только второе значение из приведенного выше вывода, который включен
Согласно документации для check_output()
:
subprocess.check_output (args, *, stdin = None, stderr = None, shell = False, universal_newlines = False)
Выполнить команду с аргументами и вернуть ее вывод в виде байта строка.
Возвращаемое значение - это одна строка, поэтому «второго значения» нет. Вам нужно проанализировать строку, чтобы получить нужные символы.
Я пробовал использовать приведенный ниже код, но я думаю, что он работает только со значениями, разделенными запятыми
get_version = subprocess.check_output(get_version)[1]
Хорошая попытка. Однако он дает второй символ в строке, что вам не нужно. Вместо этого вам нужно проделать еще немного работы. В этом случае вам понадобится функция split()
для анализа «слов» из вашей строки:
results = get_version.split()
Теперь вы можете проиндексировать results
:
print(results[1])
Предлагаю вам ознакомьтесь с стандартными строковыми методами , чтобы знать, какие инструменты доступны, когда они вам понадобятся.
Незапрошенный совет:
Посмотрите на этот код на мгновение:
get_version = ['gsutil', 'versioning', 'get', x]
get_version = subprocess.check_output(get_version)
Здесь вы повторно используете одну и ту же переменную для обозначения разных вещей. В общем, это не очень хорошая идея, потому что когда вы вернетесь к этому коду позже, это может сбить с толку. Я предлагаю вам придумать два отдельных имени, которые точно описывают, что такое каждая вещь:
command = ['gsutil', 'versioning', 'get', x]
output = subprocess.check_output(command)
Тогда мое решение будет выглядеть следующим образом:
results = output.split()
print(results[1])