我在python3.5中使用了Argparse。我需要的参数之一是一个长字符串,它可以包含单引号或双引号之类的任何字符。我不想限制用户如何使用这个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()
此类型的参数失败,出现无法识别的错误:
^{pr2}$有时毫无差错:
>>> python3.5 file.py "Now "Support is expensive, and, when you're Google or any other vendor," said Michael Jude."
>
我想知道第二类错误的原因,以及在我的代码中处理错误的解决方案,而不需要关注参数。在
这是一个问题。问题在于shell如何分割输入行并将其传递给Python。查看
sys.argv
以查看argparse
必须处理的内容。在我相信反斜杠可以让你在字符串中包括引号和其他特殊字符,但是经验。在
从侧栏: Python argparse argument with quotes
相关问题 更多 >
编程相关推荐