2016-06-09 5 views
1

Я пытаюсь ввести имена папок как аргументы sys.argv, но у меня проблема с именами папок, которые имеют пробелы, которые становятся несколькими переменными.аргументы sys.argv с пробелами

Например, из командной строки ниже «Имя папки» становится двумя переменными.

Program.py D:\Users\Erick\Desktop\Folder Name 

Любые решения?

+4

Использовать цитату; ваша ** консоль ** делает расщепление здесь, а не Python. –

+1

Program.py "D: \ Users \ Erick \ Desktop \ Folder Name" – Tim

+0

Спасибо, TimF! По какой-то причине я пробовал как одиночные кавычки, так и многострочные кавычки, но не пытался использовать двойные кавычки! –

ответ

7

Пробел - это разделитель аргументов командной строки. Вам будет лучше не использовать пробелы в вашем каталоге и имена файлов, если это возможно. Для ввода аргумента, в котором есть пробел, вам придется заключить его в кавычки "folder with space".

Program.py "D:\Users\Erick\Desktop\Folder Name"

+0

Я использую кавычки "" для выделения двух входных аргументов (в Windows), где первый аргумент - путь к каталогу. Однако этот путь к каталогу содержит «\» в конце, который в сочетании с котировкой конца для аргумента python заставляет python избегать цитаты и включать ее как часть аргумента. Следовательно, он рассматривает его как один аргумент вместо двух. Любые идеи о том, как избежать цитаты? – ashah

+0

Решил его, добавив дополнительный «\» в конец аргумента, чтобы \ экранировался, тем самым оставив закрытие в качестве разделителя, а не как часть самого аргумента. – ashah

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