我的代码使用' for循环'和youtube api搜索文件中每一行的youtube视频链接。
文件行看起来像这样' video_id name'。我通过' argparser函数'将此video_id值传递给我的函数。失败了。 尝试启动此args = argparser.parse_args()
有没有办法可以清除argparser?我用Google搜索,但似乎没有解决方案,因为我特别不断改变argparser参数的价值。此链接Disable/Remove argument in argparse建议创建父解析器,但我不明白它如何帮助解决我的问题。
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)
答案 0 :(得分:2)
您的ytSearchLaunch
函数正在使用由其他代码创建的argparser
对象,向其添加几个参数,然后解析命令行值(您也可以在{{ 1}})。然后将生成的sys.argv
命名空间对象传递给args
。
如果你展示了youtube_search
是如何创建的,或者至少显示它产生的argparser
或help
,那将对我们有所帮助。在解析之后看到usage
对象也会很高兴。
如果我读得正确,你想多次解析输入,每次都有不同的args
默认值。但是你不能多次向-q
添加相同的参数。您可以执行一次,但在重复调用时,您必须修改现有参数。
这是一个可能的解决办法:
argparser