将字符串打印到文本文件


652

我正在使用Python打开文本文档:

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

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

text_file.close()

我想将字符串变量的值替换TotalAmount为文本文档。有人可以让我知道怎么做吗?

Answers:


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中,fileprint函数有一个可选参数

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”?
瑞库拉多

6
@RuiCurado,如果TotalAmountint,要么%d还是%s会做同样的事情。
John La Rooy

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('购买金额:%s'%str(TotalAmount))”,它将与列表,字符串,浮点数,整数和可转换为字符串的任何其他内容。
EBo

43

如果要传递多个参数,可以使用元组

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

更多:在python中打印多个参数


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}")
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.