如何将csv文件导入数据数组?
我在一个脚本中有一行代码,它将数据从一个文本文件中导入,这些文本文件之间有许多空间值之间的空格,以便以后使用。如何将csv文件导入数据数组?
textfile = open('file.txt')
data = []
for line in textfile:
row_data = line.strip("\n").split()
for i, item in enumerate(row_data):
try:
row_data[i] = float(item)
except ValueError:
pass
data.append(row_data)
我需要将其从文本文件更改为csv文件。我不想仅仅改变这个文本以逗号分隔(因为如果它们在引号中,某些值可以有逗号)。幸运的是,我看到有一个我可以导入的csv库可以处理这个问题。
import csv
with open('file.csv', 'rb') as csvfile:
???
如何将csv文件加载到数据数组中?
如果它的确与众不同,这是该数据将如何使用:
row = 0
for row_data in (data):
worksheet.write_row(row, 0, row_data)
row += 1
假设CSV文件分隔用逗号,使用csv
模块在Python 3的最简单的方法很可能是:
import csv
with open('testfile.csv', newline='') as csvfile:
data = list(csv.reader(csvfile))
print(data)
对于Python 2,使用open('testfile.csv', 'rb')
打开文件。
谢谢!我有Python 2,所以我修改了建议。 'data ='行是否重申了csv中的每一行?我可以直接将数据放入'worksheet.write_row(row,0,row_data)'行,而不必先将它放入数组,然后再读取数组的每一行? – GFL
是的,它看起来像你的问题结束时的循环会起作用(尽管你不需要'数据'周围的括号)。从['xlsxwriter.write_row()'](http://xlsxwriter.readthedocs.io/worksheet.html#worksheet-write-row)文档看来,它也可以在一次调用中更高效地完成:即' worksheet.write_row(row,0,data)'而不是使用循环并进行多次调用,每次调用一次一行。 – martineau
您可以使用大熊猫库或numpy的读取CSV文件。如果你的文件是制表符分隔的,那么在下面的sep和delimiter参数中用'\ t'代替逗号。
import pandas as pd
myFile = pd.read_csv('filepath', sep=',')
或者
import numpy as np
myFile = np.genfromtxt('filepath,' delimiter=',')
你有2个任务:1)我需要将其从文本文件更改为csv文件; 2)如何将csv文件加载到数据数组中?开始发布您的初始'file.txt'内容 – RomanPerekhrest