2014-02-28 67 views
2

我想将两个变量传递给os.system(),例如在(ls -l testdirectory)这样的特定目录中列出不同格式的文件,其中交换机和测试目录是可变的。 我知道单可变这一个工程:在python中传入多个变量到os.system

option=l os.sytem('ls -%s' option)

但我不知道如何通过两个变量?

+3

你不应该使用'os.system()'开头;使用更灵活(更安全)的'subprocess'模块。 (你的例子不会起作用,要么......) – geoffspear

+0

@从技术上来说,你的权利......我仍然经常使用os.system,尽管也是......它只是简单的如果这就是你所需要的,而且你明确地控制输入... –

+0

请参阅http://stackoverflow.com/questions/12605498/how-to-use-subprocess-popen-python。 – joel3000

回答

5

你是问关于字符串格式化(因为os.system需要一个字符串,而不是参数列表)

cmd = "ls -{0} -{1}".format(var1,var2) 
#or cmd = "{0} -{1} -{2}".format("ls","l","a") 
os.system(cmd) 

cmd = "ls -%s -%s"%(var1,var2) 

cmd = "ls -"+var1+" -"+var2 
2

这一点,例如,作品:

os.system('%s %s' % ('ls', '-l'))