Ваш сценарий излишне сложный , гораздо ( намного ) более простой способ достичь этого - использовать свойство argv
sys
Затем модуль разделяет аргумент (строка), используя split
, например:
import sys
name = sys.argv[1].split(" ")
if len(name) != 2:
raise ValueError("Invalid first and last name, try using \"John Jackson\" instead.")
[first_name, last_name] = name
print(first_name, last_name)
Вам даже не нужно выдавать ошибку:
import sys
name = sys.argv[1].split(" ")
if len(name) == 2:
[first_name, last_name] = name
print(first_name, last_name)
Затем, когда вы запустите скрипт следующим образом:
python3 filename.py "John Jackson"
Вы должны получить следующий вывод:
John Jackson
Удачи.