私はPythonを初めて使用します。私はgroovyの出身で、好きな""""
ようにファイルにテキストを書き込むために使用します。
Pythonで同等の方法はありますか?
20行を超えるファイルを作成したいことに注意してください。だから私はいくつかの簡単でエレガントな方法が必要です。
前もって感謝します。
あなたが何を求めているのかは明確ではありません。
'''
Groovyでまたは複数行の文字列を使用する機能は"""
、Pythonから直接借用したものであるため、もちろん、Pythonでもまったく同じことができます。
ただし、Groovyで補間された文字列を使用"
または使用する機能"""
は、shから借用されたものであり、Pythonには同じ機能がありません。Pythonでは'
、"
文字列は同一であり、補間も行われません。
慣用的なPythonの代替はformat
です。これは、str
およびunicode
クラスのメソッドであり、次のように使用します。
s = """This is a string with a {variable} to fill in.
Here's a {second} one
""".format(variable="field", second="'nother")
これをファイルに書き込むと、次のようになります。
This is a string with a field to fill in.
Here's a 'nother one
バリエーションはたくさんあります。名前の代わりに位置で引数を渡したい場合は、{0}
代わりにを使用できます。または、引数{variable}
が順番に挿入される単純な場合は、を使用します{}
(ただし、i18nには注意してください)。また、フォーマット情報を入力して、 (人間が読める形式の表現)のrepr
代わりに(「この値を取得するために入力するもの」のようなもの)を印刷することもできます。str
詳細については、上記のリンク先のドキュメントをお読みください。
Pythonには、徐々に段階的に廃止されている古いメカニズムもあります。このメカニズムは、Cスタイルに基づくが、Cスタイルとはかなり異なる%
演算子printf
とフォーマット仕様を使用します。例えば:
s = """This is a string with a %(variable)s to fill in.
Here's a %(second)s one
""" % {"variable": "field", "second": "'nother"}
繰り返しますが、利用可能なバリエーションはたくさんあります。繰り返しになりますが、詳細については上記のリンク先のドキュメントをお読みください。ただし、実際には、これを使用するのは、古いコードを大量に処理する場合、printf
Windowsスタイルまたは同様の形式から変換する場合、またはPython2.5以前で実行する必要がある場合のみです。
これで十分でない場合は、PyPI(およびActiveStateのレシピなど)に69,105のモジュールがあり、可能な限り近い補間からHTMLページのテンプレート作成まですべてを実行できます。
Pythonは"""
、複数行の文字列のエスケープをサポートしています。ただし、変数の置換はすぐには利用できません。
multi_line_variable = """This
Is
The
Coolest
Ever."""
変数の置換が必要な場合は、Pythonのprintf
フォーマットサポートを使用するか、JinjaやDjangoテンプレート言語などのテンプレートライブラリを使用できます。
Pythonの「printf」フォーマット:
>>> echo """Massive %s!""".format("string")
"Massive string!"
f = open(name_of_file, 'w')
f.writelines(list_of_lines_to_write)
f.close()
または、の代わりにwritelines()
、f.write("""text_to_write_to_file""")