Cetak string ke file teks


653

Saya menggunakan Python untuk membuka dokumen teks:

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

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

text_file.close()

Saya ingin mengganti nilai variabel string TotalAmountke dalam dokumen teks. Dapatkah seseorang tolong beri tahu saya cara melakukan ini?

Jawaban:


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

Jika Anda menggunakan manajer konteks, file ditutup secara otomatis untuk Anda

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

Jika Anda menggunakan Python2.6 atau lebih tinggi, itu lebih disukai untuk digunakan str.format()

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

Untuk python2.7 dan lebih tinggi Anda dapat menggunakan {}bukannya{0}

Di Python3, ada fileparameter opsional untuk printfungsi ini

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

Python3.6 memperkenalkan f-string untuk alternatif lain

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

2
Dengan anggapan TotalAmount adalah bilangan bulat, bukankah "% s" menjadi "% d"?
Rui Curado

6
@RuiCurado, jika TotalAmountadalah int, baik %datau %sakan melakukan hal yang sama.
John La Rooy

2
Jawaban yang bagus Saya melihat kesalahan sintaks dengan kasus penggunaan yang hampir identik: with . . .: print('{0}'.format(some_var), file=text_file)melempar: SyntaxError: invalid syntaxpada tanda sama dengan ...
nicorellius

4
@nicorellius, jika Anda ingin menggunakannya dengan Python2.x Anda harus meletakkannya from __future__ import print_functiondi bagian atas file. Perhatikan bahwa ini akan mengubah semua pernyataan cetak dalam file menjadi panggilan fungsi yang lebih baru.
John La Rooy

Untuk memastikan tahu apa tipe variabel yang sering dikonversikan untuk memastikan, mis: "text_file.write ('Jumlah Pembelian:% s'% str (TotalAmount))" yang akan berfungsi dengan daftar, string, float, ints, dan hal lain yang dapat dikonversi menjadi string.
EBo


29

Jika Anda menggunakan Python3.

maka Anda dapat menggunakan Fungsi Cetak :

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

Untuk python2

ini adalah contoh String Cetak Python Ke File Teks

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

Jika Anda menggunakan numpy, mencetak satu (atau gandakan) string ke file dapat dilakukan hanya dengan satu baris:

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

13

Dengan menggunakan modul pathlib, indentasi tidak diperlukan.

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

Pada python 3.6, f-string tersedia.

pathlib.Path("output.txt").write_text(f"Purchase Amount: {TotalAmount}")
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.