gpt4 book ai didi

python - 如何处理 python 参数中的引号

转载 作者:太空宇宙 更新时间:2023-11-03 15:54:10 24 4
gpt4 key购买 nike

我正在使用Argparse在python3.5中。我所需的参数之一是一个长字符串,可以包含单引号或双引号等任何字符。我不想限制用户如何使用这个 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."
>

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

最佳答案

这不是 argparse 问题。这取决于 shell 如何分割输入行并将其传递给 Python。查看 sys.argv 来了解 argparse 需要使用什么。

我相信反斜杠允许您在字符串中包含引号和其他特殊字符 - 但只是实验。

从侧边栏: Python argparse argument with quotes

关于python - 如何处理 python 参数中的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40956597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com