#python #command-line #arguments #sentinel
#python #командная строка #аргументы #sentinel
Вопрос:
При написании небольшого скрипта на Python я заметил, что когда строка "????"
передается в качестве аргумента командной строки, она преобразуется в "data"
во время выполнения программы. Теперь я не уверен, является ли это строкой или каким-либо другим типом данных. Найти информацию об этом было сложно, учитывая условия поиска.
Почему это происходит и что это значит?
Комментарии:
1. есть ли файл, вызываемый
data
в каталоге, в котором вы запускаете скрипт?
Ответ №1:
?
является подстановочным знаком оболочки, он соответствует любому символу (аналогично .
регулярному выражению). Таким образом, без кавычек ????
расширяется до всех имен файлов с 4 символами. data
предположительно, это первое такое имя файла в алфавитном порядке в вашем каталоге.
Смотрите вывод
echo ????
Если вы хотите ????
буквально перейти к сценарию, заключите его в кавычки.
python yourscript.py '????'
Комментарии:
1. Мальчик, я чувствую себя глупо. Как ни странно, я пытался использовать «?» в качестве подстановочного знака в самом скрипте. Я не могу гарантировать, что какой-либо аргумент будет передан в кавычках, поэтому мне придется использовать другой символ. Спасибо!