In chuỗi thành tập tin văn bản


653

Tôi đang sử dụng Python để mở một tài liệu văn bản:

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

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

text_file.close()

Tôi muốn thay thế giá trị của một biến chuỗi TotalAmountvào tài liệu văn bản. Ai đó có thể xin vui lòng cho tôi biết làm thế nào để làm điều này?

Câu trả lời:


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

Nếu bạn sử dụng trình quản lý ngữ cảnh, tệp sẽ tự động bị đóng

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

Nếu bạn đang sử dụng Python2.6 trở lên, bạn nên sử dụng str.format()

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

Đối với python2.7 trở lên, bạn có thể sử dụng {}thay vì{0}

Trong Python3, có một filetham số tùy chọn cho printhàm

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

Python3.6 đã giới thiệu chuỗi f cho một lựa chọn khác

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

2
Giả sử TotalAmount là một số nguyên, không nên "% s" là "% d"?
Rui Curado

6
@RuiCurado, nếu TotalAmountlà một int, %dhoặc %ssẽ làm điều tương tự.
John La Rooy

2
Câu trả lời chính xác. Tôi đang thấy một lỗi cú pháp với trường hợp sử dụng gần như giống hệt nhau: with . . .: print('{0}'.format(some_var), file=text_file)đang ném: SyntaxError: invalid syntaxở dấu bằng ...
nicorellius

4
@nicorellius, nếu bạn muốn sử dụng nó với Python2.x, bạn cần đặt from __future__ import print_functionở đầu tệp. Lưu ý rằng điều này sẽ chuyển đổi tất cả các câu lệnh in trong tệp thành các lệnh gọi hàm mới hơn.
John La Rooy

Để chắc chắn biết loại biến thường được chuyển đổi để đảm bảo, ví dụ: "text_file.write ('Số tiền mua:% s'% str (TotalAmount))" sẽ hoạt động với danh sách, chuỗi, float, ints và bất cứ điều gì khác có thể chuyển đổi thành một chuỗi.
EBo


29

Nếu bạn đang sử dụng Python3.

sau đó bạn có thể sử dụng chức năng in :

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

Cho python2

đây là ví dụ về 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

Nếu bạn đang sử dụng numpy, việc in một chuỗi (hoặc nhân) thành một tệp có thể được thực hiện chỉ bằng một dòng:

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

13

Với việc sử dụng mô đun pathlib, thụt đầu dòng là không cần thiết.

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

Kể từ python 3.6, chuỗi f có sẵn.

pathlib.Path("output.txt").write_text(f"Purchase Amount: {TotalAmount}")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.