我正在Python3中创建一个基本的代码转换器,但是这个问题不是关于代码转换,而是关于命令中的变量,因此,我之所以只包括必要的信息。
此行从组合框/下拉菜单中提取文本,可以是400k 700k或1500k:

vbit = str(self.ui.comboBox1.currentText())


^此位工作正常。
我有这段代码,可以将参数传递给ffmpeg并对文件进行代码转换。

cmd = '-i "%s" -vcodec libx264 -crf 23 -b:v 400k -b:a 260k "%s.mp4"'


^当我在代码中将值写为400k时,此功能有效,因此再次使用此位没有问题。

这是我的问题-我希望将vbit的值插入到400k所在的命令中,具体取决于vbit中包含的值(即400k,700k或1500k)。我正在尝试将vbit的值插入行中。我已经尝试过了,但是没有用。

cmd = '-i "%s" -vcodec libx264 -crf 23 -b:v " + vbit + " -b:a 260k "%s.mp4"'


本质上,这是一个关于将变量插入代码行中的正确语法的问题。

最佳答案

适当地打开和关闭字符串文字:

vbit = '400k'
cmd = '-i "%s" -vcodec libx264 -crf 23 -b:v ' + str(vbit) + ' -b:a 260k "%s.mp4"'
#  '-i "%s" -vcodec libx264 -crf 23 -b:v 400 -b:a 260k "%s.mp4"'


或使用字符串格式:

vbit = '400k'
cmd = '-i "%s" -vcodec libx264 -crf 23 -b:v {} -b:a 260k "%s.mp4"'.format(vbit)
#  '-i "%s" -vcodec libx264 -crf 23 -b:v 400 -b:a 260k "%s.mp4"'

10-06 05:22
查看更多