私はこれをやろうとしています:
コマンド={'py':'python%s'、'md':'マークダウン"%s"> "%s.html"; gnome-open "%s.html"'、}
コマンド['md']%'file.md'
ご覧のとおり、commmands ['md']はパラメーターを3回使用しますが、commands['py']は1回だけ使用します。最後の行を変更せずにパラメーターを繰り返すにはどうすればよいですか(つまり、パラメーターを1回渡すだけですか?)
私はこれをやろうとしています:
コマンド={'py':'python%s'、'md':'マークダウン"%s"> "%s.html"; gnome-open "%s.html"'、}
コマンド['md']%'file.md'
ご覧のとおり、commmands ['md']はパラメーターを3回使用しますが、commands['py']は1回だけ使用します。最後の行を変更せずにパラメーターを繰り返すにはどうすればよいですか(つまり、パラメーターを1回渡すだけですか?)
注:受け入れられた回答は、古いバージョンと新しいバージョンの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"'
2.6を使用していない場合は、代わりに辞書を使用して文字列を変更できます。
commands = { 'py': 'python %(file)s', 'md': 'markdown "%(file)s" > "%(file)s.html"; gnome-open "%(file)s.html"', }
commands['md'] % { 'file': 'file.md' }
%()s構文は、通常の%フォーマッタータイプのいずれかで機能し、通常の他のオプションを受け入れます:http: //docs.python.org/library/stdtypes.html#string-formatting-operations
2.6を使用していない場合、またはこれらの%s記号を使用したい場合は、別の方法があります。
>>> commands = {'py': 'python %s',
... 'md': 'markdown "%s" > "%s.html"; gnome-open "%s.html"'
... }
>>> commands['md'] % tuple(['file.md'] * 3)
'マークダウン"file.md">"file.md.html"; gnome-open "file.md.html" '