在 Python 2.7.3 中将 csv 文件附加到一个空列表中 - 获取一个空列表
Posted
技术标签:
【中文标题】在 Python 2.7.3 中将 csv 文件附加到一个空列表中 - 获取一个空列表【英文标题】:appending csv file into an empty list in Python 2.7.3 - getting an empty list back 【发布时间】:2012-11-20 11:09:03 【问题描述】:我正在尝试打开一个 csv 文件并将行追加到列表中。我尝试了一些不同的东西,但我总是得到一个空列表。有什么建议吗?
>>> googleData = []
dataFile = open("googlePrices.csv", 'rU')
for row in dataFile:
googleData.append(row)
>>> googleData
[]
【问题讨论】:
在每个追加之前在其中放置一个打印语句:print row
。您确定您正在获取数据吗?
我刚刚在一个 csv 测试文件上运行了你的确切代码,它工作正常。另外,请查看 stdlib cvs module。
刚刚检查了文件,它应该在哪里,看起来没有为我正确打开文件,但检查了 excel 中的 csv,它看起来很好,不知道发生了什么......跨度>
我们也不知道发生了什么。你试过我建议的打印语句吗?如果是无法正常打开的问题,您会收到IOError
是的,我也试过了,但没有错误,dropbox.com/s/sz885fohzzj7fga/googlePrices.csv 如果有人可以检查它是否可以正常使用此代码,那就是我使用的文件
【参考方案1】:
使用 csvreader http://docs.python.org/2/library/csv.html
import csv
csvr = csv.reader(open('googlePrices.csv' , 'r'))
for row in csvr:
....
【讨论】:
问题出在python中...由于某种原因,在python重新安装后完全相同的代码可以正常工作...但仍然不确定是什么原因导致...可能csv库已损坏。谢谢大家的帮助【参考方案2】:一个好的做法是从 CSV 或任何其他文件中读取 每一行。..
一个可能的解决方案是这样的:
def main():
with open('sample.csv' , 'r') as f:
my_list = []
for line in f.readlines():
my_list.append(line)
print my_list
if __name__ == '__main__':
main()
更新:
由于 readlines() 将文件的每一行都读入内存,所以这个答案没有优化..
【讨论】:
-1:readlines
比仅仅遍历文件对象更糟糕,因为它将文件的每一行都读入内存。【参考方案3】:
googleData = []
dataFile = open("googlePrices.csv", 'rU')
for row in dataFile:
googleData=googleData.append(panda.Dataframe(row))
【讨论】:
请解释如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。以上是关于在 Python 2.7.3 中将 csv 文件附加到一个空列表中 - 获取一个空列表的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中将多个 .txt 文件转换为 .csv 文件
在 Python 中将 .mdb 文件转换为 .csv 时包括列名