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

在python中用作os命令的字符串中的变量,python,Python,我需要执行一个系统命令,其中有一个变量 os.system('SMILExtract -C config/demo/demo1_energy.conf -I user.wav -O csv/user.csv') 在字符串“user.wav”中,user是变量字符串,.wav是常量字符串。如何将其包含在os.system()命令中?如果变量名为user,只需使用字符串串联: os.system('SMILExtract -C config/demo/demo1_energy.conf -

我需要执行一个系统命令,其中有一个变量

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

在字符串“user.wav”中,user是变量字符串,.wav是常量字符串。如何将其包含在os.system()命令中?如果变量名为
user
,只需使用字符串串联:

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

通过将可以更改为各种命名参数的内容映射出来,可以使其变得清晰易读:

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',
))

一种方法是使用的调用函数:


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

FYI,通常最好用于这样的事情。它专门设计用于替换其他几个较旧的模块和功能,例如
os.system
如果csv路径和输出路径都是变量,如何包括?
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',
))
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])