2016-04-12 126 views
-1

我正在尝试为python程序产生读取和写入序列。我对Python相当陌生;因此对实际代码并不了解。 我很努力地从.CSV文件读取数据,这个文件包含3列,行数取决于有多少用户使用我创建的程序。现在,我知道如何查找行,但问题是它会返回整行,其中包含所有三列数据。那么 - 我如何分离数据?随后,如何将这些数据片段转换为可以读取,写入或覆盖的变量。 请记住,该计划的背景是计算机A453课程作业。另外请记住,我不是要求你为我完成我的工作,我已经完成了其他2项任务,以及任务3的所有逻辑和计划。只是我还剩下2周,直到我必须完成这门课程,并试图找出可以读取和覆盖数据的代码对于像我这样的初学者来说是非常困难的。读取和覆盖.CSV文件数据

with open('results.csv', 'a', newline='') as fp: 
    g = csv.writer(fp, delimiter=',') 
    data = [[name, score, classroom]] 
    g.writerows(data) 
fp.close() 
# Do the reading 
result = open('results.csv', 'r') 
reader = csv.reader(result) 
new_rows_list = [] 
for row in reader: 
    if row[2] == name: 
     if row[2] < score: 
      result.close() 
      file2 = open('results.csv', 'wb') 
      writer = csv.writer(file2) 
      new_row = [row[2], row[2], name, score, classnumber] 
      new_rows_list.append(new_row) 
      file2.close() 

此刻,此代码读取文件,但不是我想要的方式。我希望它隔离记录中的用户的“名称”(在.csv文件中)。而不是这样做,它将整行读取整个行,我不知道如何隔离到只是用户的名称。

下面是.csv文件中的数据: 名称得分类数 约旦0 2 约旦0 2 约旦1 2

回答

2

我假设你要什么样子的:

雅各,14,B类,3号

而这是一个字符串。

如果是这样的话,String.split()就是你的答案。在你的情况一个逗号(逗号逗号值),并返回字符串中该字符的每个实例之间的所有内容的数组。

在那里,如果你想使用结果数据在你的程序,你应该投中的值的数据类型,你想(像浮动(x)或INT(X))

希望这有助于