我有一个程序可以在python的csv文件中存储人员姓名及其分数。
例如,这是我当前的代码:
student_name = input("Name: ")
score = input("Score: ")
class_name = "student_scores.csv"
file = open(class_name , 'a')
file.write(str(student_name) + ", " + str(score) + "\n")
file.close()
输出的csv文件是(name = bob)和(score = 1):
bob, 1
当我为同一个人(bob)输入另一个分数(2)时,csv文件如下所示:
bob, 1
bob, 2
但是我如何更改我的代码,以使csv文件看起来像这样(具有2列以上):
bob, 1, 2
首先,使用该csv
库操作csv文件更简单。您需要做的就是将csv文件读入data
使用列表理解或迭代的列表中。在此,data
列表是列表的列表,内部列表代表csv文件的行。现在,检查student_name
每个内部列表的每个第一个元素。如果匹配score
,则将追加到该内部列表,然后将其内容写入data
csv文件。如果不匹配,则在追加模式下将带有student_name
和的列表写入score
csv文件。
import csv
student_name = input("Name: ")
score = input("Score: ")
with open("student_scores.csv", "r") as f:
data = [item for item in csv.reader(f)]
for item in data:
if item[0] == student_name :
item.append(score)
with open("student_scores.csv", 'w') as f:
csv.writer(f).writerows(data)
break
else:
with open("student_scores.csv", 'a') as f:
csv.writer(f).writerow([student_name, score])
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句