2

カスタム プレースホルダーを使用した文字列書式設定用の Python ライブラリを探しています。私が言いたいのは"%f %d %3c"、たとえば、どこかのような文字列を定義して、ファイル名、ディレクトリ名、および3 桁のカウンターに%f置き換えられるようにしたいということです。か何か。printf のようなものである必要はありませんが、そうであれば素晴らしいでしょう。そのため、各文字が何を意味するか、文字列か数値か、およびいくつかのフォーマット (桁数など) データを定義できるようにしたいと考えています。%d%3c

アイデアは、ユーザーがフォーマットを指定してから、データを入力できるということです。datefmt のように動作します。しかし、カスタムの場合。

Python用にすでに作成されたようなものはありますか(2.5+、残念ながら2.7と3とその__format__.

4

1 に答える 1

2

はありますがstring.Template、あなたが望むものを正確に提供しません:

>>> from string import Template
>>> t = Template("$filename $directory $counter")
>>> t.substitute(filename="file.py", directory="/home", counter=42)
'file.py /home 42'
>>> t.substitute(filename="file2.conf", directory="/etc", counter=8)
'file2.conf /etc 8'

ドキュメント: http://docs.python.org/library/string.html#template-strings

しかし、これはあなたが必要とするものを提供すると思います。テンプレート文字列を指定して、これを使用するだけです:

>>> template = "%(filename)s %(directory)s %(counter)03d"
>>> template % {"filename": "file", "directory": "dir", "counter": 42}
'file dir 042'
>>> template % {"filename": "file2", "directory": "dir2", "counter": 5}
'file2 dir2 005'
于 2011-08-13T12:27:34.517 に答える