追加到 txt 文件中的现有行

2024-04-18

我有一个程序可以将一个人的姓名及其分数存储在 python 的 txt 文件中。

例如这是我当前的代码:

name = input("Name: ")
score = input("Score: ")

file_name = "student_scores.txt" 

file = open(file_name , 'a') 
file.write(str(name)  + ", " + str(score) + "\n") 
file.close() 

输出 txt 文件为 (name = bob) 和 (score = 1) :

bob, 1

当我为同一个人(鲍勃)输入另一个分数(2)时,txt 文件如下所示:

bob, 1
bob, 2

但是我如何更改我的代码,使 txt 文件看起来像这样:

bob, 1, 2

将现有文件的数据存储在字典中,以名称作为键,以分数列表作为值。此代码会将现有数据存储到字典中,向其中添加新分数,并以正确的格式将字典写入文件。

import os
from collections import defaultdict


def scores_to_dict(file_name):
    """Returns a defaultdict of name / list of scores as key / value"""
    if not os.path.isfile(file_name):
        return defaultdict(list)
    with open(file_name, 'r') as f:
        content = f.readlines()
    content = [line.strip('\n').split(', ') for line in content]
    temp_dict = {line[0]: line[1:] for line in content}
    d = defaultdict(list)
    d.update(temp_dict)
    return d


name = input("Name: ")
score = input("Score: ")

d = scores_to_dict('student_scores.txt')
d[name].append(score)

with open('student_scores.txt', 'w') as f:
    for k, v in d.items():
        f.write(', '.join([k] + v) + '\n')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

追加到 txt 文件中的现有行 的相关文章

  • 如何忽略在另一个任务的 run() 内触发的 Luigi 任务的失败

    考虑以下任务 import luigi class YieldFailTaskInBatches luigi Task def run self for i in range 5 yield FailTask i j for j in ra
  • 按行中的值选择 pandas 数据框中的列

    我有一个pandas DataFrame列太多 我想选择行中的值等于的所有列0 and 1 所有列的类型是int64我无法通过以下方式选择它们object或其他类型 我怎样才能做到这一点 IIUC 然后你可以使用isin http pand
  • 嵌套列表递归python的序列

    给定一些数字 n 我想生成一个大小为 n 的列表 其中以下示例显示列表中的第 n 个元素应该如何 对于 n 0 返回 对于 n 1 返回 对于 n 2 返回 对于 n 3 返回 基本上 它采用先前的列表并将它们附加到新列表中 我尝试过以下方
  • django自定义模板标签中的访问请求

    我在 myapp extras py 中的代码 from django import template register template Library register inclusion tag new userinfo html d
  • 由于 __init__ 构造函数而产生的 Pytest 集合警告

    我一直在使用 Pytest 和 Selenium Web 驱动程序自学测试自动化 我所有的测试函数都在一个名为测试网络 py 它位于名为的目录中tests 我将所有函数分开 并将它们放在一个名为的单独目录中的自己的文件中测试用例 例如 这就
  • 我知道 scipy curve_fit 可以做得更好

    我使用 python numpy scipy 来实现此算法 用于根据地形坡向和坡度对齐两个数字高程模型 DEM 用于量化冰川厚度变化的卫星高程数据集的联合配准和偏差校正 C Nuth 和 A K b doi 10 5194 tc 5 271
  • Python 3.8 的点子

    如何安装适用于 Python 3 8 的 Pip 我将 3 8 设置为我的默认 Python 版本 sudo apt install python3 8 pip gives 无法找到包 python3 8 pip 和跑步 python3 8
  • 将 Django 模型映射到外部 API

    上下文 我有一个外部 API 提供数据并允许发布新数据或修补现有数据 API 响应示例 response requests get http api band 4 print response json id 4 name The Beat
  • Pygame - 如何使 hitbox 与敌人的移动一起工作?

    我正在用 Pygame 制作一个 Python 游戏 目前正在研究 hitbox 程序应该暂停 设置play False 每当玩家与敌人碰撞时 只有当我注释掉所有敌人的移动 第 56 64 行 时它才 有效 但这显然不是最好的选择 我读过有
  • 如何获取 ndarray 的 x 和 y 维度 - Numpy / Python

    我想知道是否可以分别获取 ndarray 的 x 和 y 维度 我知道我可以使用ndarray shape获取表示维度的元组 但如何在 x 和 y 信息中分离它 先感谢您 您可以使用元组拆包 y x a shape
  • 在散景中隐藏轴

    如何在散景图中隐藏 x 轴和 y 轴 我已经根据此进行了检查和尝试 p1 figure visible None p1 select type Axis visible 0 xaxis Axis plot p1 visible 0 和喜欢h
  • 将 PyQt5 QPixmap 转换为 numpy ndarray

    我有像素图 pixmap self screen grabWindow 0 self x self y self width self height 我想将其转换为 OpenCV 格式 我尝试将其转换为numpy ndarray如上所述he
  • 如何以最大窗口形式保存 matplotlib 图而不是默认大小?

    有人知道我应该如何解决这个问题吗 我知道有一个保存按钮 我可以手动执行此操作 但我正在绘制 100 多个图表 所以我希望有一种方法可以自动执行此操作 我正在使用 TkAgg 后端 并寻找任何可能的解决方案 通过在我的绘图函数末尾使用以下内容
  • Python:如何使用 struct.pack_into 将不同类型的数据打包到字符串缓冲区中

    我正在尝试将一些无符号 int 数据打包到使用创建的字符串缓冲区中ctypes create string buffer 这是以下代码段 以及显示错误的运行示例在键盘上 http codepad org S8nUWMcW import st
  • python seaborn:按色调显示 alpha

    在seaborn中 色调为组设置不同的颜色 我可以设置吗alpha取决于组中的JointGrid 或者甚至在单个数据点上 sns set theme jg sns JointGrid data df sns x x y y hue hue
  • django 2.0 中的错误 404 静态文件

    我试图在 django 2 0 中找到我的所有静态文件 但是当我只运行服务器时 我收到 404 错误 这是我的设置代码 STATIC URL static STATIC ROOT var www example com static STA
  • 如何使用高复制数据存储

    好的 我已经看过了video http www google com events io 2011 sessions more 9s please under the covers of the high replication datas
  • 从另一个文件执行按钮命令?

    我已经开始开发一个 GUI 系统 在该系统中 我需要从一个文件导入一个函数 以便在按下按钮时在主文件中执行 但每次运行它时 我都会得到 AttributeError partially initialized module Two has
  • 在 Pandas 中按索引分组

    如何使用 groupby by 索引 1 2 3 它们的顺序相同 并获得属于每个索引范围的列分数的总和 基本上我有这个 index score 1 2 2 2 3 2 1 3 2 3 3 3 我想要的是 index score sum 1
  • 使用 PyDrive 将图像上传到 Google Drive

    我有一个关于 PyDrive 的愚蠢问题 我尝试使用 FastAPI 制作一个 REST API 它将使用 PyDrive 将图像上传到 Google Drive 这是我的代码 from fastapi import FastAPI Fil

随机推荐