在Python中从命令行解析带有空格的字符串

2023-11-29

有没有办法在 python 中调用我的程序并向其传递一个我希望它解析的字符串而不将字符串声明为'String I want to parse' but as String I want to parse

import argparse

#Parse command line for input
parser = argparse.ArgumentParser(description='Parse input string')
#position input argument
parser.add_argument('string', help='Input String')

args = parser.parse_args()
arg_str = args.string

print(arg_str)

当我跑步时$ python test.py String I want to parse我收到错误:test.py: error: unrecognized arguments: I want to parse

无论如何,是否有告诉脚本考虑空格并将输入作为一个字符串,直到到达输入末尾或另一个解析参数,例如-s到达了?


“正确”的方法是已经提到过。但OP特别问:

我希望它能够解析而不将字符串声明为'String I want to parse' but as String I want to parse

可以使用以下方法来做到这一点自定义动作。这种方法相对于简单加入的优点sys.argv[1:]是为了解决以下问题:

无论如何,是否有办法告诉脚本考虑空格并将输入视为一个字符串,直到到达输入末尾或到达另一个解析参数(例如 -s)?

我们可以添加其他选项,而无需将它们拖入“string”参数中:

import argparse

class MyAction(argparse.Action):
    def __call__(self, parser, namespace, values, option_string=None):
        setattr(namespace, self.dest, ' '.join(values))

parser = argparse.ArgumentParser(description='Parse input string')
parser.add_argument('string', help='Input String', nargs='+', action=MyAction)
parser.add_argument('--extra', '-s', help='Another Option!')

args = parser.parse_args()
print args

Demo:

$ python example.py abc def ghi
Namespace(extra=None, string='abc def ghi')
$ python example.py abc def ghi -s hello
Namespace(extra='hello', string='abc def ghi')
$ python example.py -s hello abc def ghi 
Namespace(extra='hello', string='abc def ghi')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Python中从命令行解析带有空格的字符串 的相关文章

  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • 确定 C 字符串是否是 C 中的有效 int

    我需要检查 C 字符串是否是有效整数 我都尝试过 int num atoi str and int res sscanf str d num 但发送字符串 8 9 10 这两行都仅返回 8 而没有指示该字符串的无效性 谁能提出替代方案 看看
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • Python 函数可以从作用域之外赋予新属性吗?

    我不知道你可以这样做 def tom print tom s locals locals def dick z print z name z name z guest Harry print z guest z guest print di
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 解释 Python 中的数字范围

    在 Pylons Web 应用程序中 我需要获取一个字符串 例如 关于如何做到这一点有什么建议吗 我是 Python 新手 我还没有找到任何可以帮助解决此类问题的东西 该列表将是 1 2 3 45 46 48 49 50 51 77 使用
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • 类型错误:预期单个张量时的张量列表 - 将 const 与 tf.random_normal 一起使用时

    我有以下 TensorFlow 代码 tf constant tf random normal time step batch size 1 1 我正进入 状态TypeError List of Tensors when single Te
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在

随机推荐

  • 观察具有传递项目依赖关系的构建?

    您好 我对 C NET 相当陌生 我有一些关于项目依赖性的问题 第一 我的情况 我有一个解决方案 让我们称之为 MyLibrary 它有几个 dll 输出项目 这些项目相互依赖 作为项目引用 也依赖于一些外部库 dll 引用 我确保该项目引
  • 命令“grunt server”的指南针错误

    我正在运行一个安装了nodeJs ruby yeoman compass等的项目 现在我用命令运行我的项目 gt grunt server or gt grunt server force 但它给了我罗盘的以下错误 E CRM worksp
  • 在 MYSQL 中从文本框中的逗号分隔文本添加新行

    我有一个 PHP MYsql 问题 我试图在每个逗号后插入一个新行 基本上 我想要这个功能 假设我们有一个包含以下文本的文本框 篮球 网球 足球 排球 gt 提交按钮 单击提交按钮后 我想在一个表中的每个单词后插入一个新行 基本上 我希望数
  • 在 Eclipse 上测试时如何传递 -D System 属性?

    我正在 Windows 上的 Eclipse 上进行开发 代码部署在 Unix 上 我正在使用 System getProperty key 获取系统属性值 如何在 Eclipse 中传递它 以便我不必修改代码并且它可以在 Eclipse
  • Delphi IDE 中出现“无法更改 OnShow 或 OnHide 中的可见项”错误

    我在使用 Delphi 2006 IDE 时遇到一个非常奇怪的问题 如果 IDE 最小化 并且 PC 被锁定 我返回电脑 解锁并最大化 IDE 有时会收到错误 无法更改 OnShow 或 OnHide 中的可见项 如果发生这种情况 我必须使
  • 挂钩 ASP.Net Core 的 Razor 页面执行

    我正在尝试加入ExecuteAsync 使用我的自定义视图页面 继承自RazorPage 在里面RazorPage类中有一个抽象方法 public abstract Task ExecuteAsync 解析 cshtml 文件 视图 时 该
  • 在 C++ 和 C# 之间传递向量结构

    我有 C 非托管代码 我想从 C 访问它 所以我遵循了一些教程 为我的项目构建了一个 dll 顺便说一句 只有一个类 现在我想从 C 使用它 我使用 p invoke 如下 我的问题是 是否可以编组我的窗口点 以便我可以将它作为向量传递到我
  • 在 Selenium Grid 中指定 Windows 版本(或特定机器)

    我正在设置一个 Selenium 网格 以便涵盖一个测试矩阵 该矩阵需要全面涵盖以下组合 提供相同服务的三台服务器 Windows Server 2003 2008 和 2012 和十个客户端 XP Win7 win8 和 win8 1 将
  • 两个第 n 个位置字符之间的正则表达式

    我试图根据位于两个字符 之间的文本字符串获取一些数据 但可能是第 n 个位置的单词 目前我有以下内容 2 处理以下数据 D20 Mbps U10 Mbps TC4 P 我期望得到的地方 U10 但当第一部分捕获时什么也得不到 D20 Mbp
  • 在 C# 中,如何实例化方法内传递的泛型类型?

    我如何实例化我的类型 TInstantiateType
  • 附近连接2.0:连接成功,立即断开连接

    我正在尝试将附近连接 2 0 与P2P CLUSTER连接策略 并且我在让我的设备连接并保持连接时遇到问题 根据我的跟踪日志 看起来设备已成功连接 然后立即断开连接 请注意 它有时也会成功运行相同的代码 然后保持连接 我不知道是什么让它有时
  • 如何使用 android facebook sdk 在朋友的墙上发布文本

    我正在尝试使用 Android Facebook sdk 在用户朋友的墙上发帖 我已使用类似的调用成功发布到用户自己的新闻源 使用我当前的代码 向朋友发帖可以顺利进行 只是消息是空白的 所有附件似乎都不起作用 它在朋友的墙上显示为完全空白的
  • 如何使整个html正文居中对齐?

    如何将整个 html 正文对齐到中心 我只是偶然发现了这篇旧帖子 虽然我确信 user01 早已找到了他的答案 但我发现当前的答案不太有效 使用其他人提供的信息进行了一些尝试后 我找到了一个适用于 IE Firefox 和 Chrome 的
  • 如何将 list 中的项目计数设置为特定数量

    我有课SimpleHistogram dt 接受一个通用数组DT 我应该设置特定的计数 即元素在数组中出现的次数item在数组中转为 intcount 这是我到目前为止所拥有的 public class SimpleHistogram dt
  • 程序未进入if语句

    在我的 python 程序中 没有输入 if 语句 我已将代码简化为以下内容 x 5 while x lt 5 if x 0 print 0 x 01 该程序不输出任何内容 但是 将最后一行更改为 x 5 会使程序输出 0 有什么问题吗 浮
  • $near 和 $within 之间的 MongoDB 地理空间差异

    有什么区别 near and within db geodata find loc within center 12 91365 77 59395 4 limit 10 db geodata find loc near 12 91365 7
  • 比较Python中的两个列表A、B,找到A中与B中相同数字对应的所有元素

    我想比较两个Python列表 A 和 B 以便我可以找到A 中的所有元素分别对应于B 中的数字相同 我想这样做是为了B 中的每个数字 例如 如果 A 5 7 9 12 8 16 25 B 2 1 3 2 3 1 4 我想得到 7 16 co
  • ASP.NET 应用程序从 Session.Remove 实现中抛出 System.NullReferenceException

    我们在 ASP NET Web 应用程序中收到随机 System NullReferenceException 我们正在使用进程内会话状态 堆栈跟踪 System NullReferenceException Object referenc
  • 扩展BufferedImage

    为什么下面的代码显示的是黑色图像而不是图片 如何正确扩展BufferedImage class SizeOfImage public static void main String args throws Exception URL url
  • 在Python中从命令行解析带有空格的字符串

    有没有办法在 python 中调用我的程序并向其传递一个我希望它解析的字符串而不将字符串声明为 String I want to parse but as String I want to parse import argparse Par