2016-02-08 3 views
1

Я пытаюсь прочитать аргументы командной строки в Python в виде:Python: аргументы командной строки не читаются?

питон myprogram.py строка строка строка

Я попытался с помощью sys.argv [1-3], чтобы получить каждую строку, но когда у меня есть строка, такая как $ unny-Day, она не обрабатывает всю строку. Как я могу полностью обрабатывать строки?

+1

Не могли бы вы добавить свой пример кода, который не работает? Это поможет устранить вашу точную проблему. – jamescampbell

+1

Вы кладете $ unny-Day в кавычки, когда передаете это в качестве аргумента? – Aliminator

ответ

5

Вы используете оболочку? $ - специальный символ в оболочке, который интерпретируется как переменная оболочки. Поскольку переменная не существует, она текстово заменяется пустой строкой.

Попробуйте использовать одинарные кавычки вокруг вашего параметра, например > python myapp.py '$unny-Day'.

+0

Точно это. Всегда безопаснее передавать аргументы, которые являются строками в виде строки, поскольку некоторые символы могут быть зарезервированы. – Aliminator

+0

Спасибо, это решило проблему, но мне нужен способ обработать ее как строку без использования одинарных кавычек. Или, сразу после python myprogram.py, обработайте три строки, разделенные пробелами. – user3808889

+0

Я согласен с @kazagistar, но я тестировал его с несколькими строками и кавычками, иногда они исчезают, или они появляются частично или заменяются пустой строкой. Попробуйте «$ a» или «$ sunny-day», чтобы увидеть эффекты. – hectorcanto

Смежные вопросы