从str.split()提升一步

我通常使用str.split()进行命令行参数的简单分组,但是
我想支持,例如,在Windows下的长文件名称
通常以简单引用的字符串提供.例如.,
myApp -dosomething -loadthis"我的文件名.fil"
....我想找回一个列表,其中listentry [3] ="我的file name.fil",
但是,仅在上面的字符串上运行str.split()就会创建:
['myapp',' - dosomething',' - loadthis'," my',''',''','name.fil'']
是否有一种简单的方法可以提供这一小型附加功能
(将引用名称作为单个条目保持)而不是成熟
命令行参数解析工具?即使是正则表达方式似乎
可能在这里过大吗?或者没有?
谢谢,
---乔尔

# 回答1


7月14日,下午6:33,"乔尔·科尔特纳"
写道:
['myapp',' - dosomething',' - loadthis'," my',''',''','name.fil'']
是否有一种简单的方法可以提供这一小型附加功能
(将引用名称作为单个条目保持)而不是成熟
命令行参数解析工具?即使是正则表达方式似乎
可能在这里过大吗?或者没有?
谢谢,
---乔尔
查看Shlex模块:
['myapp',' - dosomething',' - loadthis','我的文件name.fil']
马特
# 回答2


乔尔·科尔特纳(Joel Koltner)写道:
['myapp',' - dosomething',' - loadthis'," my',''',''','name.fil'']
是否有一种简单的方法可以提供这一小型附加功能
(将引用名称作为单个条目保持)而不是成熟
命令行参数解析工具?即使是正则表达方式似乎
可能在这里过大吗?或者没有?
谢谢,
---乔尔
听起来好像是时候查看GetOPT库模块了.我处理这些类型
args线.
- 拉里
# 回答3


谢谢马特,这看起来像我想要的!
# 回答4


乔尔·科尔特纳(Joel Koltner)
以[' - dosomething',''-loadthis','我的文件名为.fil']的可用性?
sys.argv怎么了?
- -
\ s-
si the@chiark.greenend.org.uk
- -
http://www.chaos.org.uk/~sion/
"坦率地说,我对企鹅没有一种方式或另一种方式"
- 亚瑟·克拉克(Arthur C. Clarke)
她的nu变成se bera eadward ofdunhlæddreheafdesbæcebump bump bump bump
# 回答5


" Sion Arrowsmith"
新闻:ti *******@news.chiark.greenend.org.uk ...
主要是不存在. :-)示例有些人为 - 我
真正处理在程序中交互式输入的命令
对RAW_INPUT()的响应,尽管命令的格式是
与命令行的使用一致. (例如,真正的命令将是
像这样的东西:加载"我的固件file.bin".)
我最终使用了shlex.strip() - 效果很好!
---乔尔
# 回答6


在7月15日,4:28*下午,"乔尔·科尔特纳"
写道:
主要是不存在. *:-) *这个例子有些人为 - 我
真正处理在程序中交互式输入的命令
响应raw_input(),尽管千万的格式 DS是 与命令行的使用一致. *(例如,真正的命令是 像这样的东西:加载"我的固件file.bin".) 我最终使用了shlex.strip() - 效果很好! ---乔尔 然后...更好...查看CMD模块(您仍然可以使用 如果愿意,Shlex).

选择 | 换行 | 行号
  1. import cmd
  2.  
  3. class MyCmd(cmd.Cmd):
  4. def do_blah(self, args):
  5. """Sing a song about bla"""
  6. print >>self.stdout, "bla bla bla"
  7.  
  8. def do_foo(self, args):
  9. """Prints out the args"""
  10. print >>self.stdout, repr(args)
  11.  
  12. def do_quit(self, args):
  13. """exit the command interpreter"""
  14. print >>self.stdout, "bye bye"
  15. return True
  16. do_exit = do_q = do_quit
  17.  
  18.  
  19. if __name__ == "__main__":
  20. MyCmd().cmdloop()
  21.  

运行时,您将获得"(CMD)"提示: (CMD)帮助 记录的命令(键入帮助): ===================================== blah退出foo q退出 无证命令: ==================== 帮助 (CMD)帮助等等 唱一首关于BLA的歌 (CMD)帮助退出 退出命令解释器 (CMD)帮助Foo 打印出Args (CMD)QU ***未知语法:qu (CMD)退出 再见 文档此处: http://docs.python.org/lib/module-cmd.html 马特

标签: python

添加新评论