【问题标题】:How to write in a specific cell in a CSV file?如何在 CSV 文件的特定单元格中写入内容?
【发布时间】:2021-11-07 23:06:58
【问题描述】:

我有一个作业,我需要使用 Python 3 在 csv 文件中输入不同学生的随机成绩,并获得每个学生的平均值(平均值以及如何获得随机成绩,我知道该怎么做它),问题是我不知道如何在那些特定的列和行(突出显示的)上写成绩。

突出显示的区域是我需要写随机成绩的空间:

无论如何,这可以做到吗?我对编程和 Python 3 还很陌生,据我所知,无法使用正常方式更改特定单元格。

【问题讨论】:

  • 将所有数据读入内存,在内存中添加值,将所有数据写回文件。
  • CSV 文件等具有可变长度记录的文件无法轻松有效地随机更新。出于这个原因,它们通常被完全读入内存,更新,然后更新的内容用于完全重写文件。

标签: python python-3.x csv row multiple-columns


【解决方案1】:

csv 模块没有修改特定单元格的功能。

您可以从原始文件中读取行,附加成绩并将修改后的行写入新文件:

import random
import csv

inputFile = open('grades.csv', 'r')
outputFile = open('grades_out.csv', 'w')
reader = csv.reader(inputFile)
writer = csv.writer(outputFile)
for row in reader:
    grades = row.copy()
    for i in range(5):
        grades.append(random.randint(1, 5))
    writer.writerow(grades)
inputFile.close()
outputFile.close()

然后你可以删除原文件,重命名新文件(不把整个原文件读成一个变量,关闭它,再以写模式打开再写数据,因为它可能很大)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 2011-08-12
    相关资源
    最近更新 更多