Python-使用.csv文件

彼德

我有一个包含大量数据的.csv文件。我尝试用以下方法打开它:

import csv

filename = raw_input('Your filename: ')
with open(filename,'r') as myFile:
  dataFromFile = csv.reader(myFile)
  print dataFromFile

据我所知csv.reader将数据从文件转换为列表。

我想打开文件,2015-09-02_17:59:43.csv但是出现以下错误:

IOError: [Errno 2] No such file or directory: '2015-09-02_17:59:43.csv '

好的,我用Google搜索它,并在堆栈溢出时发现了以下问题:尝试使用open(filename,'w')会出现IOError:[Errno 2]没有这样的文件或目录:所以我从那里尝试了解决方案。但是后来又出现了另一个错误:

OSError: [Errno 2] No such file or directory: ''

然后,我将文件重命名为timestamp.csv,因为我想知道名称是否可能是issus,因此尝试了第一个解决方案。因此突然可以找到该文件,但是作为打印输出,我得到了以下内容:<_csv.reader object at 0x104c88a60>我以为如果打印dataFromFile出来,它将向我显示整个列表。

因此,这里的第一个问题是:这是否<_csv.reader object at 0x104c88a60>意味着该列表将要显示很久,所以它只是告诉我我拥有什么对象?

第二个问题:为什么以前没有尝试解决工作问题?

我发现了一些解决方法:

for currentRow in dataFromFile:
 print currentRow

因此,逐行打印出来。但不完全是我想要的。

最后但并非最不重要的一点是,我想将列表转换为numpy数组,最简单的方法是什么?

编辑我已经找到了最后一个问题的答案和方式,这很简单:

 import numpy as np
 np.array(dataFromFile)
詹姆斯·王|

据我所知,csv.reader会将文件中的数据转换为列表。

这是一个错误的假设。

此处的Python文档中,csv.reader:

返回一个读取器对象,该对象将遍历给定csvfile中的行。

它是一个迭代器,而不是列表。因此,您将获得一个csv.reader对象。如果你做了

list(dataFromFile)

它会显示您的期望。

编辑:解决您的编辑问题,我认为您正在寻找类似本文的内容本质上,genfromtxt()在numpy中,您要做的是将CSV转换为numpy数组。

PS:通常来说,您可能应该问另一个问题,即主题是否完全不同-保持主题清晰,使您的问题减少到移动的目标

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章