python读写文本,将信息保存至文件中并读取出来

请编写一个存储玩家资料的程序。程序要求输入玩家的姓名、年龄、国籍。要求使用字典存储玩家资料,且要求程序输入玩家信息后,可以在退出程序前将玩家信息存储到一个与Python程序同目录名字为player. txt的文本文件中,并将txt文件中的用户信息读取到屏幕上,可以选择使用readline()方法读取信息,即每次读取一名玩家的信息。读取到的信息内容是一行字符串,该字符串以”\n”结尾。首先需要使用字符串函将”\n”去掉,去掉”\n”后的玩家的各种信息之间是以空格为区分的。可以使用split()函数将玩家信息按顺序存储在一个列表中。最后通过挨个读取列表项的方式将玩家信息逐一读取到屏幕上

该回答引用chatgpt:

img


def save_player_info(player_info):
    with open("player.txt", "a") as file:
        file.write(player_info + "\n")

def read_player_info():
    with open("player.txt", "r") as file:
        lines = file.readlines()
        for line in lines:
            player_info = line.strip()
            player_data = player_info.split()
            print("姓名:", player_data[0])
            print("年龄:", player_data[1])
            print("国籍:", player_data[2])
            print("----------------------")

def main():
    players = []

    while True:
        print("欢迎使用玩家资料存储程序!")
        name = input("请输入玩家姓名(输入q退出): ")
        if name == "q":
            break
        age = input("请输入玩家年龄: ")
        country = input("请输入玩家国籍: ")
        player = {
            "姓名": name,
            "年龄": age,
            "国籍": country
        }
        players.append(player)

    for player in players:
        player_info = " ".join([player["姓名"], player["年龄"], player["国籍"]])
        save_player_info(player_info)

    print("已存储的玩家信息:")
    read_player_info()

if __name__ == "__main__":
    main()


# 定义一个空字典,用于存储玩家资料  
players = {}  
  
# 循环输入玩家信息,直到用户选择退出为止  
while True:  
    # 提示用户输入玩家信息  
    name = input("请输入玩家姓名:")  
    age = input("请输入玩家年龄:")  
    country = input("请输入玩家国籍:")  
  
    # 将玩家信息添加到字典中  
    players[len(players)+1] = {"name": name, "age": age, "country": country}  
  
    # 提示用户是否继续输入玩家信息  
    choice = input("是否继续输入玩家信息?(Y/N)")  
    if choice.upper() == "N":  
        break  
  
# 将玩家信息存储到文本文件中  
with open("player.txt", "w") as f:  
    for player in players.values():  
        f.write(f"{player['name']} {player['age']} {player['country']}\n")  
  
# 从文本文件中读取玩家信息  
with open("player.txt", "r") as f:  
    for line in f:  
        # 去掉行末的换行符  
        line = line.strip()  
        # 将玩家信息按空格切割,存储到列表中  
        player_info = line.split()  
        # 输出玩家信息  
        print(f"姓名:{player_info[0]},年龄:{player_info[1]},国籍:{player_info[2]}")


player_info = {}

name = input("请输入玩家姓名:")
age = input("请输入玩家年龄:")
nationality = input("请输入玩家国籍:")

player_info["姓名"] = name
player_info["年龄"] = age
player_info["国籍"] = nationality

with open("player.txt", "a") as f:
f.write(str(player_info) + "\n")

with open("player.txt", "r") as f:
while True:
player = f.readline()
if not player:
break
player = player.strip("\n")
player_list = player.split(",")
for item in player_list:
print(item)