Друкувати рядок у текстовий файл


652

Я використовую Python для відкриття текстового документа:

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

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

text_file.close()

Я хочу замінити значення рядкової змінної TotalAmountв текстовий документ. Може хтось, будь ласка, дайте мені знати, як це зробити?

Відповіді:


1213
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 є додатковий fileпараметр printфункції

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

Python3.6 представив f-рядки для іншої альтернативи

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

2
Якщо припустити, що TotalAmount є цілим числом, чи не повинен "% s" бути "% d"?
Rui Curado

6
@RuiCurado, якщо TotalAmountє int, то %dабо %sзробить те саме.
Джон Ла Руй

2
Чудова відповідь. Я бачу синтаксичну помилку з майже однаковим випадком використання: with . . .: print('{0}'.format(some_var), file=text_file)кидає: SyntaxError: invalid syntaxна знак рівності ...
nicorellius

4
@nicorellius, якщо ви хочете використовувати це з Python2.x, вам потрібно поставити from __future__ import print_functionу верхній частині файлу. Зауважте, що це перетворить усі оператори друку у файлі на новіші виклики функції.
Джон Ла Руй

Щоб переконатися, що тип змінної часто перетворює її, щоб переконатися, напр .: "text_file.write (" Сума придбання:% s '% str (TotalAmount)) ", яка буде працювати зі списками, рядками, плаваючими, ints та все, що можна перетворити на рядок.
EBo


29

Якщо ви використовуєте Python3.

тоді ви можете використовувати функцію друку :

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

Для python2

це приклад друкованого рядка Python для текстового файлу

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, друк одного (або множення) рядків у файл можна виконати лише одним рядком:

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-рядки.

pathlib.Path("output.txt").write_text(f"Purchase Amount: {TotalAmount}")
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.