所以,目前我正在撰写会员数据库"客户计划。程序需要能够将所有输入的信息放入可以随时读取的文本文件中。目前,我正在研究一种原型型产品,目前并不代表最终产品。
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()
用户输入完信息后,需要先写入,然后返回菜单。目前,它只是不会写入文本文件。
答案 0 :(得分:1)
你永远不会f.close()
该文件。您可以使用with
语句自动关闭:
with open('...', 'a+') as f:
...
# f.close() is called automatically at the end of this block.
顺便说一下:与阅读相同:将阅读放在with open() as f
块中。
答案 1 :(得分:0)
当我在与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'}}
我能够关闭文件,然后再次打开,文本仍然存在。希望这会有所帮助,因此您现在可以在代码中实现它。
答案 2 :(得分:0)
final DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
final DateFormat dateFormat_year = new SimpleDateFormat("yyyy");
final DateFormat dateFormat_month = new SimpleDateFormat("MM");
final DateFormat dateFormat_day = new SimpleDateFormat("dd");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));
System.out.println(dateFormat_year.format(cal.getTime()));
System.out.println(dateFormat_month.format(cal.getTime()));
System.out.println(dateFormat_day.format(cal.getTime()));
文件。f.flush()
你的档案。