在python中用作os命令的字符串中的变量

时间:2014-03-05 16:32:13

标签: python

我需要执行一个有变量的系统命令。在下面的代码中

    os.system('SMILExtract -C config/demo/demo1_energy.conf -I user.wav -O csv/user.csv')

在字符串“ user.wav ”中,用户是变量字符串, .wav 是常量字符串。如何包含它在os.system()命令中

4 个答案:

答案 0 :(得分:3)

使用format字符串?

os.system('SMILExtract -C config/demo/demo1_energy.conf -I {0}.wav -O csv/user.csv'.format(somevar))

通过将可以更改的内容映射到各种命名参数,可以使其清晰可读:

cmd_template = 'SMILExtract -C {config_path} -I {wav_base}.wav -O {csv_path}'
os.system(cmd_template.format(
  config_path='config/demo/demo1_energy.conf',
  wav_base='user',
  csv_path='csv/user.csv',
))

答案 1 :(得分:0)

如果变量名为user,则只使用字符串连接:

os.system('SMILExtract -C config/demo/demo1_energy.conf -I ' + user + '.wav -O csv/user.csv')

答案 2 :(得分:0)

执行此操作的一种方法是使用subprocess module的调用函数:

from subprocess import call
varname="test"
user=varname+str(".wav")
options="-C config/demo/demo1_energy.conf -I %s -O csv/user.csv"%(user)

call(["SMILExtract", options])

答案 3 :(得分:0)

os.system('SMILExtract -C config / demo / demo1_energy.conf -I'+ user +'。wav -O csv / user.csv')