我需要执行一个有变量的系统命令。在下面的代码中
os.system('SMILExtract -C config/demo/demo1_energy.conf -I user.wav -O csv/user.csv')
在字符串“ user.wav ”中,用户是变量字符串, .wav 是常量字符串。如何包含它在os.system()命令中
答案 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')