如何处理python argumen中的引号

2024-04-29 10:48:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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."
>

我想知道第二类错误的原因,以及在我的代码中处理错误的解决方案,而不需要关注参数。在


Tags: 代码textpyselfparsermyparsermessage参数
1条回答
网友
1楼 · 发布于 2024-04-29 10:48:05

这是一个问题。问题在于shell如何分割输入行并将其传递给Python。查看sys.argv以查看argparse必须处理的内容。在

我相信反斜杠可以让你在字符串中包括引号和其他特殊字符,但是经验。在

从侧栏: Python argparse argument with quotes

相关问题 更多 >