命令中的python变量用os.system执行

时间:2013-03-11 20:20:33

标签: python linux

Python让我发疯;我一直很难在PATH中使用变量。我的版本是Python 2.4.3

>>> import os
>>> a = "httpd"
>>> cmd = '/etc/init.d/+a restart'
>>> print cmd
/etc/init.d/+a restart
>>>

如何在/etc/init.d/httpd变量中添加cmd以便我可以使用os.system(cmd)

2 个答案:

答案 0 :(得分:3)

对于python v> 2.7

cmd = '/etc/init.d/{} restart'.format(a)

cmd = '/etc/init.d/'+a+' restart'

但您应该考虑使用subprocess

答案 1 :(得分:2)

你需要这样的东西:

cmd = '/etc/init.d/%s restart' % a

如果您需要进行多次替换,可以执行以下操作:

cmd = '/etc/init.d/%s %s' % ( 'httpd', 'restart' )

在此表单中,'%s'是占位符。每个'%s'都会被tuple运算符(我猜想的字符串插值运算符)右侧的相应%中的项替换。更多详细信息可以在reference

的字符串格式部分找到

从python2.6开始,有一种使用.format方法格式化字符串的新方法,但我想这对你没什么帮助。