2014-03-05 31 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')