文字列をテキストファイルに出力


653

Pythonを使用してテキストドキュメントを開いています。

text_file = open("Output.txt", "w")

text_file.write("Purchase Amount: " 'TotalAmount')

text_file.close()

文字列変数の値をTotalAmountテキストドキュメントに代入したい。誰かが私にこれを行う方法を教えてもらえますか?

回答:


1214
text_file = open("Output.txt", "w")
text_file.write("Purchase Amount: %s" % TotalAmount)
text_file.close()

コンテキストマネージャを使用する場合、ファイルは自動的に閉じられます

with open("Output.txt", "w") as text_file:
    text_file.write("Purchase Amount: %s" % TotalAmount)

Python2.6以降を使用している場合は、 str.format()

with open("Output.txt", "w") as text_file:
    text_file.write("Purchase Amount: {0}".format(TotalAmount))

python2.7以降では、{}代わりに使用できます{0}

Python3ではfileprint関数にオプションのパラメーターがあります

with open("Output.txt", "w") as text_file:
    print("Purchase Amount: {}".format(TotalAmount), file=text_file)

Python3.6 は別の代替手段としてf-stringsを導入しました

with open("Output.txt", "w") as text_file:
    print(f"Purchase Amount: {TotalAmount}", file=text_file)

2
TotalAmountが整数であるとすると、「%s」は「%d」であってはなりませんか?
Rui Curado 2013

6
@RuiCuradoは、場合TotalAmountint、いずれか%dまたは%s同じことを行います。
John La Rooy、2013

2
すばらしい答えです。ほぼ同じユースケースで構文エラーが発生します。with . . .: print('{0}'.format(some_var), file=text_file)スローされます:SyntaxError: invalid syntax等号で...
nicorellius

4
@ nicorellius、Python2.xで使用する場合from __future__ import print_functionは、ファイルの先頭に配置する必要があります。これにより、ファイル内のすべての印刷ステートメントが新しい関数呼び出しに変換されることに注意してください。
John La Rooy

変数のタイプが何であるかを確認するために、それを確認するために変換することがよくあります。例: "text_file.write( 'Purchase Amount:%s'%str(TotalAmount))"これは、リスト、文字列、フロート、int、および文字列に変換可能なその他のもの。
EBo


29

Python3を使用している場合。

次に、Print関数を使用できます。

your_data = {"Purchase Amount": 'TotalAmount'}
print(your_data,  file=open('D:\log.txt', 'w'))

Python2の場合

これはPython Print String To Text Fileの例です

def my_func():
    """
    this function return some value
    :return:
    """
    return 25.256


def write_file(data):
    """
    this function write data to file
    :param data:
    :return:
    """
    file_name = r'D:\log.txt'
    with open(file_name, 'w') as x_file:
        x_file.write('{} TotalAmount'.format(data))


def run():
    data = my_func()
    write_file(data)


run()

19

numpyを使用している場合、単一(または乗算)の文字列をファイルに出力するには、1行だけで実行できます。

numpy.savetxt('Output.txt', ["Purchase Amount: %s" % TotalAmount], fmt='%s')

13

pathlibモジュールを使用すると、インデントは必要ありません。

import pathlib
pathlib.Path("output.txt").write_text("Purchase Amount: {}" .format(TotalAmount))

Python 3.6以降では、f-stringsを使用できます。

pathlib.Path("output.txt").write_text(f"Purchase Amount: {TotalAmount}")
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.