[英]Python Program won't write in a text file
因此,当前我正在为客户端编写“成员数据库”程序。 该程序必须能够将所有输入的信息放入可以随时读取的文本文件中。 目前,我正在研究原型类型的东西,目前还不能说明最终产品。
import os
def add_member():
f = open("memberdatabase.txt","a+")
member_name = input('Input Member Name\n')
member_age = int(input('Input Member Age\n'))
member_ID = int(input('Input Member ID\n'))
member_job = input('Input Member Job\n')
dicto = {member_name:{'Age':member_age,
'ID':member_ID,
'Job':member_job}}
strdicto = str(dicto)
f.write(strdicto)
menu()
def read_data():
f = open("memberdatabase.txt","r")
contents = f.read()
print(contents)
input('Press enter to return to menu')
menu()
def menu():
seperator()
x = int(input('Enter an option\n'
'[1] Add a member\n'
'[2] Read Data\n'))
if x == 1:
add_member()
elif x == 2:
read_data()
else:
print('Not an option, retry!')
menu()
menu()
用户输入完信息后,需要将其写入,然后返回菜单。 目前,它只是不会写入文本文件。
您永远不会f.close()
该文件。 您可以对with
语句使用自动关闭功能:
with open('...', 'a+') as f:
...
# f.close() is called automatically at the end of this block.
顺便说一句:与读取相同:将读取内容放入with open() as f
a中with open() as f
块。
当我在与py脚本相同的文件夹中使用名为memberdatabase.txt的文件运行代码时,将文本保存到文件中没有任何问题。 您只需要确保完成后关闭文件即可。 它应该是这样的:
f = open("memberdatabase.txt","a+")
member_name = input('Input Member Name\n')
member_age = int(input('Input Member Age\n'))
member_ID = int(input('Input Member ID\n'))
member_job = input('Input Member Job\n')
dicto = {member_name:{'Age':member_age,
'ID':member_ID,
'Job':member_job}}
strdicto = str(dicto)
f.write(strdicto)
f.close()
这是添加两个成员后在文件中得到的输出:
{'Peter': {'Age': 26, 'ID': 21, 'Job': 'Manager'}}{'Bob': {'Age': 34, 'ID': 1209, 'Job': 'Manager'}}
我能够关闭文件,然后再次打开,并且文本仍然存在。 希望这会有所帮助,以便您现在就可以在代码中实现它。
f.flush()
。 f.close()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.