【问题标题】:Python3 - Inserting the value of a variable into another variables commandPython3 - 将变量的值插入另一个变量命令
【发布时间】:2017-02-07 12:53:55
【问题描述】:

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

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

【问题讨论】:

  • 为什么不使用与其他值相同的 %s 插值(大概)...?!

标签: python linux python-3.x variables


【解决方案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"'

【讨论】:

  • 好的,谢谢,我使用了您的第一个选项,效果很好。我可以问一下,我还尝试在 + str(vbit) 周围使用双引号作为实验,但它失败了。为什么出于兴趣需要单引号(抱歉,我是 Python 新手)?
  • @treetop 引号不在+ str(vbit) 周围。它们围绕字符串文字'-i "%s" -vcodec libx264 -crf 23 -b:v '
猜你喜欢
  • 1970-01-01
  • 2020-01-06
  • 1970-01-01
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
  • 2014-04-29
  • 2016-05-28
  • 2021-09-07
相关资源
最近更新 更多