该案例学习了一下内容:
- 如何使用文件;
- 如何一次性读取整个文件;
- 如何写入文件,以及将文本附加到文件尾部;
- 异常捕获处理
- 存储Python数据结构
remeaber_name.py
import json
def get_stored_name():
"""如果用户名存在就获取"""
filename = 'names.json'
try:
with open(filename) as f_obj:
username = json.load(f_obj)
except FileNotFoundError:
return None
else:
return username
def get_new_name(new_name,is_exist=True):
"""提示用户输入用户名"""
#new_name = input("Enter your name:")
is_exist = is_exist_name(new_name)
if is_exist:
return new_name,is_exist
else:
#存储用户名
return do_store_name(new_name),is_exist
def is_exist_name(name):
"""验证用户名是否已存在"""
filename = 'names.json'
try:
with open(filename) as f_obj:
names = json.load(f_obj)
except FileNotFoundError:
names = []
json.dump(names, open(filename, 'w'))
return False
else:
if name in names:
return True
else:
return False
def do_store_name(new_name):
filename = "names.json"
readed = json.load(open(filename, 'r'))
readed.append(new_name)
with open(filename,'w') as f_obj:
json.dump(readed,f_obj)
return new_name
def greet_user(username):
username,is_exist = get_new_name(username)
#username = get_stored_name()
if is_exist:
print("Welcome back,"+ username +"!")
else:
# username = get_new_name()
print("We'll remeber you when you com back," + username +"!")
if __name__ == "__main__":
while True:
input_str = input("请输入登录名(输入'Q'录入结束):")
if input_str == 'Q':
break
greet_user(input_str)
names.json
["KEKE", "LELE", "JIZHUANG.WANG", "XIAYU", "XIA"]