【发布时间】:2017-08-16 09:53:03
【问题描述】:
这是我在这里的第一个问题,如果有任何错误,我很抱歉。
我正在使用具有一些 Youtube 功能的 CMD 在 python 中制作一个 shell,我几乎完成了,功能正常工作,但由于某种原因,我尝试 [command] -h 后 shell 退出(我正在使用 argparse这个)
以下是您可以看到的示例:
As you can see, arguments help gets printed but then it quits the shell
如果我输入正确的参数,shell 会根据需要保持打开状态。
getSongUrl 函数代码如下:
def do_getSongUrl(self, arg):
"""given a name, returns a list with all the videos and their URLs"""
args = parser_getSongUrl.parse_args(arg.split())
song = args.song
song_str = ' '.join(word for word in song)
print("Searching: " + song_str)
print("Limiting results to: " + str(args.limit))
res = musictools.get_song_urls(song_str)
for i in range(args.limit):
for (song_urls, song_titles) in res:
print(song_titles + ":")
print(song_urls)
print("")
这个函数的解析器是在 CMD 类之前定义的,这就是我看到每个例子的方式,下面是解析器的代码:
parser = argparse.ArgumentParser(description='Shell parsers handler')
subparsers = parser.add_subparsers()
parser_getSongUrl = subparsers.add_parser("getSongUrl")
parser_getSongUrl.add_argument("-s", "--song", help="Name of the song", type=str, required="true", nargs="+")
parser_getSongUrl.add_argument("-l", "--limit", help="Limits the output", type=int, default=10)
提前感谢您的任何帮助。我还是 python 的新手,如果有任何反馈,我将不胜感激。
【问题讨论】:
-
这是内置在
argparse中的。查看它在您之前添加的选项:-h/--help。但你为什么有这样的问题? -
不要将文字作为图片发布,而是复制粘贴。