2014-03-05 32 views
1

我需要执行在其中有一个variable.In系统命令下面将字符串“user.wav变量在python

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

代码用作OS命令, 用户是可变字符串,的.wav是恒定string.How可以使用os.system()命令

+0

仅供参考,通常使用['subprocess'](http://docs.python.org/3.3/library/subprocess.html)这样的东西更好。它被设计为替代其他几个较老的模块和函数,比如'os.system' –

回答

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

如果csv路径和输出路径都是变量,如何包含? – san45

+0

@ san45已经在答案。 – kojiro

0

内包括它如果变量被命名为user,只需使用字符串连接:

os.system('SMILExtract -C config/demo/demo1_energy.conf -I ' + user + '.wav -O csv/user.csv') 
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]) 
0

使用os.system( 'SMILExtract -C配置/演示/ demo1_energy.conf -I '+用户+'。WAV -O CSV/user.csv')