Я использую Argparse в python3.5. один из моих обязательных параметров - длинная строка, которая может иметь любой символ, такой как одиночные или двойные кавычки. Я не хочу ограничивать пользователя тем, как он использует этот скрипт python, и заставить его удалить эти символы. поэтому я ищу решение для обработки котировок в моем коде.Как обрабатывать кавычки в аргументе python
Это мой аргумент парсер:
class MyParser(argparse.ArgumentParser):
def error(self, message):
sys.stderr.write('Error: %s\n' % message)
self.print_help()
sys.exit(2)
def msg(name=None):
return '''python3.5 file.py Text'''
parser = MyParser(description='You must pass exactly one arguments after classifier.py . Use quotes after and before the argument.', usage=MyParser.msg())
parser.add_argument('text', help='"News Text" for classification (Required Parameter)')
args = parser.parse_args()
Этого типа аргумент терпит неудачу с неопознанной ошибкой:
>>> python3.5 file.py "Apps infected by Gooligan include "Perfect Cleaner," and more."
Error: unrecognized arguments: Cleaner, and more.
И иногда без каких-либо ошибок:
>>> python3.5 file.py "Now "Support is expensive, and, when you're Google or any other vendor," said Michael Jude."
>
Я хочу знать причину ошибок второго типа и решения ошибок обработки в моем коде без какого-либо внимания к аргументу.
Вы также можете попробовать одиночные кавычки всего рассуждения. – kindall
@kindall Но будьте осторожны, что одиночные кавычки в одной кавычки * не могут быть экранированы. –