【发布时间】:2017-06-20 01:10:08
【问题描述】:
目前正在为我的高级更高计算项目编写战舰代码,我正处于最后一个障碍。我正在尝试导入一个名为“leaderboard.csv”的 CSV 文件,该文件包含两列,在 csv 文件(名称和镜头)中设置了标题,里面的数据看起来像这样。
名字 - 镜头
姓名 1 - 19
姓名2 - 24
等等... - ...
这部分代码接收数据并将所有名称存储在 aNames[] 中,然后将所有镜头存储在 aShots[] 中 它按计划为 aNames 工作,所有名称都存储在数组中,然后我可以使用它们,但是 aShots 数组是完全空的,它的代码或多或少是相同的,但标题已更改,仅此而已。 代码如下所示。
def ChangeFileToArray():
from csv import DictReader
with open("leaderboard.csv") as f:
#Where "Names" and "Shots" are the names of the headings in the CSV file.
aNames=[row["Names"] for row in DictReader(f)]
aShots=[row["Shots"] for row in DictReader(f)]
f.close
return aNames, aShots
文件的输出在它之前的所有绒毛之后是这样的。
['Name1', 'Name2', 'Name3', 'Name4']
[]
我以前查看过我的解决方案,很多人说要使用 pandas 解决方案,但遗憾的是,这不是我的选择。我最好将其保留在(导入的)csv 模块中。提前致谢。
【问题讨论】:
-
在您的第一次列表理解之后,
f中没有任何内容可供阅读。 -
虽然不是整个 csv 文件,但所有镜头都在 csv 文件中原封不动,或者我误解了 f 是什么。
-
尝试在第二次理解之前添加
f.seek(0)。 -
完美运行感谢一堆:D
-
最好创建两个空列表,然后逐行遍历您的
DictReader并在执行过程中将元素添加到列表中,而不是读取文件两次。
标签: python arrays python-3.x csv data-handling