Python 将字符串打印到文本文件
我正在使用Python打开一个文本文档:Python 将字符串打印到文本文件,python,string,text,file-io,Python,String,Text,File Io,我正在使用Python打开一个文本文档: text_file = open("Output.txt", "w") text_file.write("Purchase Amount: " 'TotalAmount') text_file.close() 我想将字符串变量TotalAmount的值替换到文本文档中。有人能告诉我怎么做吗?强烈建议使用上下文管理器。作为一个优势,可以确保文件始终处于关闭状态,无论发生什么情况: with open("Output.txt", &
text_file = open("Output.txt", "w")
text_file.write("Purchase Amount: " 'TotalAmount')
text_file.close()
我想将字符串变量
TotalAmount
的值替换到文本文档中。有人能告诉我怎么做吗?强烈建议使用上下文管理器。作为一个优势,可以确保文件始终处于关闭状态,无论发生什么情况:
with open("Output.txt", "w") as text_file:
text_file.write("Purchase Amount: %s" % TotalAmount)
这是显式版本(但请始终记住,应该首选上面的上下文管理器版本):
如果您使用的是Python2.6或更高版本,最好使用str.format()
对于python2.7及更高版本,您可以使用{}
而不是{0}
在Python3中,print
函数有一个可选的file
参数
with open("Output.txt", "w") as text_file:
print("Purchase Amount: {}".format(TotalAmount), file=text_file)
引入Python3.6作为另一个替代方案
with open("Output.txt", "w") as text_file:
print(f"Purchase Amount: {TotalAmount}", file=text_file)
如果要传递多个参数,可以使用元组
price = 33.3
with open("Output.txt", "w") as text_file:
text_file.write("Purchase Amount: %s price %f" % (TotalAmount, price))
更多:
如果您使用的是Python3
然后您可以使用:
用于蟒蛇2
这是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()
如果使用numpy,只需一行即可将单个(或多个)字符串打印到文件中:
numpy.savetxt('Output.txt', ["Purchase Amount: %s" % TotalAmount], fmt='%s')
使用pathlib模块时,不需要缩进
import pathlib
pathlib.Path("output.txt").write_text("Purchase Amount: {}" .format(TotalAmount))
从Python3.6开始,f-strings是可用的
pathlib.Path("output.txt").write_text(f"Purchase Amount: {TotalAmount}")
使用
f-string
是一个很好的选择,因为我们可以使用str
等语法放置多个参数
例如:
import datetime
now = datetime.datetime.now()
price = 1200
currency = "INR"
with open("D:\\log.txt","a") as f:
f.write(f'Product sold at {currency} {price } on {str(now)}\n')
假设TotalAmount是一个整数,“%s”不应该是“%d”吗?@RuiCurado,如果
TotalAmount
是一个int
,那么%d
或%s
都会做同样的事情。答案很好。我在一个几乎相同的用例中看到一个语法错误:with…:print({0}.format(some_var),file=text_file)
正在抛出:SyntaxError:invalid syntax
在等号处…@nicorellius,如果您希望在Python2.x中使用它,您需要将from_uuuuuufuture\uuuuu导入print\u函数
放在文件顶部。请注意,这将把文件中的所有print语句转换为较新的函数调用。为了确保知道变量类型通常是什么,请将其转换为确保,例如:“text_file.write('Purchase Amount:%s'%str(TotalAmount))”,它将用于列表、字符串、浮点、整数、,你为什么不做w+
?只是偏好,我喜欢区分我从文件中写入和读取的时间。你为什么不做w+
?打印(你的_数据,file=open(…)
会保持文件打开你为什么不做w+
?
import pathlib
pathlib.Path("output.txt").write_text("Purchase Amount: {}" .format(TotalAmount))
pathlib.Path("output.txt").write_text(f"Purchase Amount: {TotalAmount}")
import datetime
now = datetime.datetime.now()
price = 1200
currency = "INR"
with open("D:\\log.txt","a") as f:
f.write(f'Product sold at {currency} {price } on {str(now)}\n')