Python ';对于循环';用于更新argparser参数
我的代码使用“for loop”和youtube api在youtube视频链接中搜索文件中的每一行 文件行看起来像这个“视频id名称”。我正在将此video_id值传递给我的函数,但“argparser function”失败第一次迭代后,尝试启动此Python ';对于循环';用于更新argparser参数,python,youtube-api,argparse,Python,Youtube Api,Argparse,我的代码使用“for loop”和youtube api在youtube视频链接中搜索文件中的每一行 文件行看起来像这个“视频id名称”。我正在将此video_id值传递给我的函数,但“argparser function”失败第一次迭代后,尝试启动此args=argparser.parse_args() 有没有办法清除argparser?我在谷歌上搜索了一下,但似乎对于我的argparser参数的特定不断变化的值没有解决方案。这个链接建议创建父解析器,但我不明白它如何帮助解决我的问题 def
args=argparser.parse_args()
有没有办法清除argparser?我在谷歌上搜索了一下,但似乎对于我的argparser参数的特定不断变化的值没有解决方案。这个链接建议创建父解析器,但我不明白它如何帮助解决我的问题
def ytSearchLaunch(video_id):
argparser.add_argument("--q", help="Search term", default=video_id)
argparser.add_argument("--max-results", help="Max results", default=25)
args = argparser.parse_args()
youtube_search(args)
这就是全部代码
def youtube_search(options):
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
developerKey=DEVELOPER_KEY)
search_response = youtube.search().list(
q=options.q,
type="video",
part="id,snippet",
maxResults=options.max_results
).execute()
def ytSearchLaunch(video_id):
argparser.add_argument("--q", help="Search term", default=video_id)
argparser.add_argument("--max-results", help="Max results", default=25)
args = argparser.parse_args()
youtube_search(args)
def checkDateFunction():
fname = 'file'
f = open(fname,'r')
for l in f:
video_id = l.split()[0]
ytSearchLaunch(video_id)
您的
ytSearchLaunch
函数将获取由其他代码创建的argparser
对象,向其添加两个参数,然后解析命令行值(您也可以在sys.argv
中看到)。然后将生成的args
命名空间对象传递给youtube\u search
如果您展示了argparser
是如何创建的,或者至少展示了它生成的help
或用法,这将对我们有所帮助。在解析后看到args
对象也很好
如果我读对了,您希望多次解析输入,每次都使用不同的-q
默认值。但是不能多次将相同的参数添加到argparser
。您可以执行一次,但在重复调用时,您必须修改现有参数
这里有一个可能的解决方案:
def ytSearchLaunch(video_id, added_actions=[]):
if len(added_actions)==0: # first time
a1 = argparser.add_argument("--q", help="Search term", default=video_id)
a2 = argparser.add_argument("--max-results", help="Max results", default=25)
added_actions.append(a1)
added_actions.append(a2)
else: # repeats
# change defaults to the -q argument without adding a new one
added_actions[0].default = video_id
args = argparser.parse_args()
youtube_search(args)
您的ytSearchLaunch
函数将获取由其他代码创建的argparser
对象,向其添加两个参数,然后解析命令行值(您也可以在sys.argv
中看到)。然后将生成的args
命名空间对象传递给youtube\u search
如果您展示了argparser
是如何创建的,或者至少展示了它生成的help
或用法,这将对我们有所帮助。在解析后看到args
对象也很好
如果我读对了,您希望多次解析输入,每次都使用不同的-q
默认值。但是不能多次将相同的参数添加到argparser
。您可以执行一次,但在重复调用时,您必须修改现有参数
这里有一个可能的解决方案:
def ytSearchLaunch(video_id, added_actions=[]):
if len(added_actions)==0: # first time
a1 = argparser.add_argument("--q", help="Search term", default=video_id)
a2 = argparser.add_argument("--max-results", help="Max results", default=25)
added_actions.append(a1)
added_actions.append(a2)
else: # repeats
# change defaults to the -q argument without adding a new one
added_actions[0].default = video_id
args = argparser.parse_args()
youtube_search(args)
我在youtube api页面的示例代码中使用它,它从oauth2client从oauth2client.tools导入argparser
链接导入实际代码如果在youtube api页面上很难找到,我在youtube api页面的示例代码中使用它,它从oauth2client从oauth2client.tools导入argparser
链接,如果在youtube api页面上很难找到100%有效的实际代码。非常感谢你!我刚开始琢磨如何显示帮助/用法。-h
是通常的help
命令行。但您也可以使用argparser.print\u help()
或argparser.print\u用法
来显示用于调试的内容。有时我也会打印argparser.\u actions
以查看所有的操作都已定义。这100%有效。非常感谢你!我刚开始琢磨如何显示帮助/用法。-h
是通常的help
命令行。但您也可以使用argparser.print\u help()
或argparser.print\u用法
来显示用于调试的内容。有时我还会打印argparser.\u actions
以查看所有的操作都已定义。