【问题标题】:How to split the string containing command line arguments [duplicate]如何拆分包含命令行参数的字符串[重复]
【发布时间】:2020-12-23 19:23:59
【问题描述】:

如何将字符串-s -k "test_a or test_b" -m "not unstable" --results=/tmp/test-results --log-cli-level=INFO拆分成

['-s', '-k', 'test_a or test_b', '-m', 'not unstable', '--results=/tmp/test-results', '--log-cli-level=INFO']

【问题讨论】:

  • test_b 之后似乎缺少引号
  • 你从哪里得到这个字符串?这似乎是命令行参数。这可能是一个 XY 问题,因为有一些内置方法可以解析命令行参数

标签: python


【解决方案1】:

我假设您错过了添加报价。如果您想使用类似 shell 的行为进行拆分,请使用 shlex:

import shlex

s = '-s -k "test_a or test_b" -m "not unstable" --results=/tmp/test-results --log-cli-level=INFO'
print(shlex.split(s))
# ['-s', '-k', 'test_a or test_b', '-m', 'not unstable', '--results=/tmp/test-results', '--log-cli-level=INFO']

【讨论】:

  • @anonymous,很高兴它有帮助!如果您正在制作命令行工具,还请查看argparse 库 - 它非常方便。如果我的回答解决了您的问题,请单击复选标记接受。您还应该考虑将此问题标记为与 stackoverflow.com/a/899314/6045800 重复。如果你庆祝它,祝你圣诞快乐,如果你不庆祝它,祝你节日快乐:) :)
  • 如果您认为它是重复的,那么您为什么要回答?你有足够的代表来结束问题,所以你应该这样做
  • @Tomerikoo,@anonymous 是一个新用户,他只是想解决一个问题。我鼓励他们将其作为重复项关闭,但更重要的是,我希望他们得到他们问题的答案,即使它可能效率不高,或者他们不知道如何提问,或者他们应该在网站上搜索重复项.
  • 没关系,他们是新的,可能找不到问题。但你不是新人。所以我觉得建议在答案中将问题标记为重复问题很有趣。重复的全部意义在于避免重复相同的问题和答案。您的答案与上面链接的答案完全相同,甚至还有另一个答案...您通过将他们的问题关闭为重复的方式来帮助 OP,就像通过回答...
猜你喜欢
  • 2011-03-16
  • 2014-09-18
  • 1970-01-01
  • 1970-01-01
  • 2017-02-07
  • 1970-01-01
  • 2018-10-10
  • 2023-03-15
  • 2015-12-17
相关资源
最近更新 更多