在os.system中执行命令时使用python变量
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 个回答
2
你需要类似这样的东西:
cmd = '/etc/init.d/%s restart' % a
如果你需要进行多次替换,可以这样做:
cmd = '/etc/init.d/%s %s' % ( 'httpd', 'restart' )
在这个形式中,'%s'
是一个占位符。每个 '%s'
会被右边对应的 tuple
中的一个项目替换掉,这个 %
操作符可以理解为字符串插值的操作符。更多详细信息可以在这个参考文档的字符串格式化部分找到。
从 python2.6 开始,有了一种新的字符串格式化方法,叫做 .format
,不过我想这对你帮助不大。
3
对于 Python 版本大于 2.7 的情况
cmd = '/etc/init.d/{} restart'.format(a)
或者
cmd = '/etc/init.d/'+a+' restart'
不过你可能应该考虑使用 subprocess
这个模块。