Python回调语法错误

时间:2017-09-12 06:28:21

标签: python split callback

让我先从代码开始。请注意,代码中存在的所有变量都已明确定义。

call(['youtube-upload', '--title='song + " ~ ["+movie_name +"]", '--description="Hi there!\nDon\'t forget to enjoy :)"', '--category="Song"', '--default-language="en"', '--playlist "'+xx+'"', song2file(song)+'.mp4'], shell=False)

错误(语法错误): Syntax Error

请帮助

2 个答案:

答案 0 :(得分:3)

'--title ='和歌曲之间缺少'+'。

call(['youtube-upload', '--title='+ song + " ~ ["+movie_name +"]", '--description="Hi there!\nDon\'t forget to enjoy :)"', '--category="Song"', '--default-language="en"', '--playlist "'+xx+'"', song2file(song)+'.mp4'], shell=False)

答案 1 :(得分:2)

您在+'--title='之间错过了song。但是,您应该使用str.format而不是字符串添加。使阅读更容易,更快,并降低丢失+或不匹配引号的风险。

例如:

call(['youtube-upload', 
      '--title={song} ~ [{movie_name}]'.format(song=song, movie_name=movie_name), 
      '--description="Hi there!\nDon\'t forget to enjoy :)"', 
      '--category="Song"', 
      '--default-language="en"', 
      '--playlist "{xx}"'.format(xx=xx), 
      '{filename}.mp4'.format(filename=song2file(song))], 
     shell=False)

如果你有Python 3.6+,那么f-strings将大大缩短这一点:

call(['youtube-upload', 
      f'--title={song} ~ [{movie_name}]', 
      '--description="Hi there!\nDon\'t forget to enjoy :)"', 
      '--category="Song"', 
      '--default-language="en"', 
      f'--playlist "{xx}"', 
      f'{song2file(song)}.mp4'], 
     shell=False)