第二个循环上的冲突选项字符串

时间:2017-04-27 21:59:32

标签: python youtube-api arguments argparse

    #main loop 
while 1==1:
    #If they click Yes on the dialog box begin recording, otherwise ask again
    easygui.msgbox('This is what the last person suggested! Press ok to record.: ' + output_string, 'Title', ok_button= "OK")
    N+=1
    counterFile = open('counterFile','w')
    counterFile.write(str(N));
    counterFile.close()
    camera.start_recording('video' + str(N) + '.h264')
    audioRecord() 
    camera.stop_recording()
    output_string_old = output_string;
    output_string = TextEnter()
    filename = ConvertMerge()
    argparser.add_argument("--file")
    argparser.add_argument("--title")
    argparser.add_argument("--description")
    argparser.add_argument("--category")
    argparser.add_argument("--keywords")
    argparser.add_argument("--privacyStatus")
    args = argparser.parse_args(["--file", filename, "--title", str(N),"--description", output_string_old, "--category", "22", "--keywords", " ", "--privacyStatus", "public"])
    initialize_upload(get_authenticated_service(args), args)

我已经制作了这段代码,用于记录素材,然后使用youtube api上传到youtube,但它目前在第二个循环中返回此错误。

  

ArgumentError:argument --file:conflicting options string(s): - file

filename ='mergedVideo'+ str(N) + '.mkv'并在每次运行程序时增加。

为什么第二个循环会发生这个错误?

1 个答案:

答案 0 :(得分:1)

您必须多次调用parser.add_argument(" - file"),而每个参数只能调用一次。在进入循环之前,只需将所有add_argument调用移到右侧。

运行此代码可能有助于了解出现了什么问题:

import argparse

parser = argparse.ArgumentParser(description='test')
for i in range(2):
    print i
    parser.add_argument("--file")
    parser.add_argument("stuff")

你会注意到第二次循环时出现错误,因为你已经添加了一个名为" - file"的参数。