Python3 - 将变量的值插入另一个变量命令

时间:2017-02-07 12:53:55

标签: python linux python-3.x variables

我在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"'

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

1 个答案:

答案 0 :(得分:1)

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

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"'
相关问题