传递参数一次,但使用次数更多

Gab*_*ira 4 python parameters string-formatting repeat

我正在尝试这样做:

commands = {'py':'python%s','md':'markdown"%s">"%s.html"; gnome-open"%s.html"',}

命令['md']%'file.md'

但是就像你看到的那样,commmands ['md']使用参数3次,但命令['py']只使用一次.如何在不更改最后一行的情况下重复参数(因此,只需将参数传递一次?)

Mar*_*ers 11

注意:在较新版本的Python中不鼓励接受的答案,虽然它适用于较旧版本和较新版本的Python.

由于str.format()很新,很多Python代码仍然使用%运算符.但是,因为最终将从语言中删除这种旧格式化格式,所以通常应该使用str.format().

因此,如果您使用的是Python 2.6或更高版本,则应使用str.format%操作符:

>>> commands = {
...     'py': 'python {0}',
...     'md': 'markdown "{0}" > "{0}.html"; gnome-open "{0}.html"',
... }
>>> commands['md'].format('file.md')
'markdown "file.md" > "file.md.html"; gnome-open "file.md.html"'
Run Code Online (Sandbox Code Playgroud)