Используйте абстрактный класс, если Вы хотите обеспечить некоторые базовые внедрения.
Вероятно, оболочка обрабатывает \
как escape-символ и таким образом экранирует этот символ. Таким образом, оболочка отправляет \ "
как "
(потому что думает, что вы пытаетесь избежать двойных кавычек). Решение состоит в том, чтобы избежать escape-символа, например: $ python args.py "hello \ world \\"
.
Обратная косая черта «экранирует» следующий за ней символ. Это означает, что закрывающие кавычки становятся частью аргумента и фактически не завершают строку.
Это поведение оболочки, которую вы используете (предположительно, bash или аналогичной), а не Python (хотя вы можете управляющие символы в строках Python тоже).
Решение состоит в том, чтобы избежать обратной косой черты:
python args.py "hello\world\\"
Ваш скрипт Python должен тогда работать так, как вы ожидаете.
Обратная косая черта ( \
) экранирует "
. Вот и все. Это , как это должно работать .
Если это работает в Windows, значит, вы не используете стандартную командную строку Windows (или оболочку). Это должно быть bash. Командная строка Windows не рассматривает обратную косую черту как escape-символ (поскольку это разделитель пути к файлу).
Дополнительная мелочь: символ кавычек в командной строке Windows - каретка: ^
Правила синтаксического анализа параметров Microsoft
Это правила синтаксического анализа командной строки, переданной CreateProcess () программе, написанной на C / C ++:
Подробное и четкое описание см. в http://www.daviddeley.com/autohotkey/parameters/parameters.htm#WINCRULESDOC