我在学校做了一个程序,对用户进行特定主题的测试,结果保存到csv文件中。我设法打印出得分最高的那一行,但这看起来不太整齐。你知道吗
with open ('reportForFergusTwo.csv', 'r') as highScore:
highScoreFinder=highScore
valid3=False
for row in highScoreFinder:
if subjectInput in row:
if difficultyInput in row:
if ('10' or '9' or '8' or '7' or '6' or '5' or '4' or '3' or '2' or '1') in row:
valid3=True
print("The highest score for this quiz is:",row)
例如:它说,“这个测验的最高分数是:chemistry,easy,10,Luc16”,但我更喜欢它说“这个测验的最高分数是:10”和“这个分数是由:Luc16获得的”,而不是仅仅打印整行,还有一些不必要的细节,比如测验的内容。你知道吗
我的CSV文件如下所示:
Subject,Difficulty,Score,Username
language,easy,10,Luc16
chemistry,easy,10,Luc16
maths,easy,9,Luc16
chemistry,easy,5,Eri15
chemistry,easy,6,Waf1
chemistry,easy,0,Eri15
我想,如果我能找到一种方法来获取单个结果(分数和用户名)并将它们放入自己的单个变量中,那么以我想要的方式呈现它会容易得多,如果我需要再次显示它们,那么以后可以在函数中引用它们。你知道吗
我只是对编码相当陌生,很好奇是否可以做到这一点,所以我可以改进代码的外观。你知道吗
编辑:为了解决这个问题,我用结构拆分()将“我的CSV”行中的独立字段拆分,以便可以通过变量选择和保存这些字段。接受的答案显示了我使用的解决方案,但这是我的最终代码,以防这不清楚
with open ('details.csv', 'r') as stalking:
stalkingReader=csv.reader(stalking)
valid4=False
for column in stalkingReader:
if user in column[3]:
valid4=True
print("Here are the details for user {}... ".format(user))
splitter=row.split(',')
name=splitter[0]
age=splitter[1]
year=splitter[2]
print("Name: {}".format(name))
print("Age: {}".format(age))
print("Year Group: {}".format(year))
postReport()
if valid4==False:
print("Sorry Fergus, this user doesn't seem to be in our records.")
with
打开(并将关闭).csv
文件。 然后,创建四个空列表。 接下来,我循环遍历文件中的每一行,并使用逗号作为分隔符拆分每一行。这将生成一个包含四个元素的列表,这些元素将附加到每个列表中。你知道吗您可以使用
str.split()
来分解CSV的行,以便可以单独引用字段:您可以使用csv库
相关问题 更多 >
编程相关推荐