python - 我如何将数据保存到文本文件中,主要是我在记录中写的内容
问题描述
python新手,需要将此数据存储到文本文件中。主要是我的记录,但在 recsave.write 行中出现了 concat 错误(元组)。任何帮助或建议,或者只是做错了
print (' Title ')
name = 'y'
while name == 'y':
print (' Enter the name of the sender: ')
sender = input("\n")
# add name of reciever #
print (' Enter the name of the reciever: ')
reciever = input("\n")
# how much would you like to send #
print (' How much would you like to send :$ ')
amount = input("\n")
record = (sender, 'sent :$',amount, 'to', reciever, "\n" )
recsave = open('Transaction History.txt', 'w')
recsave.write(record + '\n')
recsave.close()
print (str(record, "\n"))
name = input (' Are there anymore transactions? ( Enter y or n ): ')
想在打开文本文件时得到它。你得到
name 发送 $amount 给 name
还需要包括时间戳:(每次循环运行时都会将每个循环保存到记录中
解决方案
创建一个包含所有信息而不是元组的字符串并写入
import datetime
dt = datetime.datetime.now()
record = "{} : {} sent :${} to {}\n".format(dt, sender, amount, reciever)
recsave = open('Transaction History.txt', 'a')
recsave.write(record)
recsave.close()
print(record)
使用模式"a"
(追加)而不是"w"
(写入)将新记录添加到文件中的现有记录。
w
将删除旧信息。
在您添加的记录中,"\n"
因此您不必添加它write()
但是您可以创建功能来执行此操作,然后您可以在不同的地方使用它
import datetime
def log(message):
dt = datetime.datetime.now()
line = "{} : {}\n".format(dt, message)
recsave = open('Transaction History.txt', 'a')
recsave.write(line)
recsave.close()
print(line)
#----
log("start program")
record = "{} sent :${} to {}".format(dt, sender, amount, reciever)
log(record)
log("end program")
有标准模块日志记录来创建带有历史记录的日志或文件。
推荐阅读
- html - 如何为跨度定义 XPath,或者在跨度不可用的情况下使用 div
- datepicker - 当空间不足时,Jquery UI Datepicker 覆盖/隐藏字段
- java - 使用 jsonb_array_elements 进行批处理有什么缺点?
- r - 为什么 norm(x, type='2')!=x%*%x?
- asp.net-core - 支持多种数据库类型的数据库迁移库
- terraform - 无法为雪花连接构建 dsn:未提供身份验证方法
- c# - 对重复匹配使用单独的捕获组
- javascript - 为什么提交函数和ajax没有拾取模态中的html表单提交?
- java - 在 PHP 上运行 Java 的空数组
- android - 应用暂停时自动关闭 Flutter 模态底页