0

私はPythonを初めて使用します。私はgroovyの出身で、好きな""""ようにファイルにテキストを書き込むために使用します。

Pythonで同等の方法はありますか?

20行を超えるファイルを作成したいことに注意してください。だから私はいくつかの簡単でエレガントな方法が必要です。

前もって感謝します。

4

3 に答える 3

6

あなたが何を求めているのかは明確ではありません。

'''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"}

繰り返しますが、利用可能なバリエーションはたくさんあります。繰り返しになりますが、詳細については上記のリンク先のドキュメントをお読みください。ただし、実際には、これを使用するのは、古いコードを大量に処理する場合、printfWindowsスタイルまたは同様の形式から変換する場合、またはPython2.5以前で実行する必要がある場合のみです。

これで十分でない場合は、PyPI(およびActiveStateのレシピなど)に69,105のモジュールがあり、可能な限り近い補間からHTMLページのテンプレート作成まですべてを実行できます。

于 2013-01-07T07:12:25.993 に答える
2

Pythonは"""、複数行の文字列のエスケープをサポートしています。ただし、変数の置換はすぐには利用できません。

multi_line_variable = """This
Is   
The
Coolest
Ever."""

変数の置換が必要な場合は、Pythonのprintfフォーマットサポートを使用するか、JinjaやDjangoテンプレート言語などのテンプレートライブラリを使用できます。

Pythonの「printf」フォーマット:

>>> echo """Massive %s!""".format("string")
"Massive string!"
于 2013-01-07T06:50:51.017 に答える
1
f = open(name_of_file, 'w')
f.writelines(list_of_lines_to_write)
f.close()

または、の代わりにwritelines()f.write("""text_to_write_to_file""")

于 2013-01-07T06:50:32.847 に答える