2014-07-15 50 views
0

我正在嘗試編寫一個可以傳遞os.system()變量的短程序。其中變量定義如下:當我將它指定爲將定義爲文件的變量傳遞給os.system()

import os 
os.system("python code.py input.xxxx output.xxxx") 

但不能與變量

code = 'code.py' 
input_file = 'input.xxxx' 
output_file = 'output.xxxx' 


import os 
os.system("python code input_file output_file") 

代碼工作。 您的幫助將不勝感激。

回答

1

你的第一個後,那些「」還是空間試圖通過一個由變量名稱組成的字符串,而不是它們的。試試這個:

os.system("python {} {} {}".format(code, input_file, output_file)) # Python 3.x 

os.system("python {0} {1} {2}".format(code, input_file, output_file)) # Python 2.x 

這將插入變量的值到字符串爲您服務。

+0

非常感謝。有用! – maniunchik

+0

好!我很高興它有幫助。如果您有滿足您需求的答案,您應該[將其中一個可用答案標記爲已接受](http://stackoverflow.com/help/accepted-answer)。 – skrrgwasme

+0

剛剛做到了!謝謝。 – maniunchik

0

python不能識別引號內的變量名稱。 youll必須字符串連接在一起,並像這樣的變量:

os.system("python " + code + " " + input_file + " " + output_file); 

現在我忘了,如果蟒蛇+自動添加一個空格或不那麼你可能不需要蟒蛇

+0

它的工作原理與您所建議的一樣(包括所有空格和「」)。非常感謝您的幫助! – maniunchik

+0

沒問題我很高興它爲你工作,現在我確定是否需要空格或不是哈哈 – awarrier99