我的两个单元格中有一个带逗号的CSV。细胞标有引号。
例如"1","METHOD - Standard","NGSG 01 MIDLAND FAB","GALINDO-REG, MARISOL",
当我尝试使用以下行导入CSV文件时:
csv = np.genfromtxt(filename, delimiter=',',dtype=str)
Python给出了一个错误,说行有不同的列数。
单元格中的数据必须保持不变,我必须删除引号,因为稍后会将数组导入到不同的程序中。
我需要一种方法来保留数据中的逗号,而无需启动新列。我怎样才能做到这一点?
编辑: 此问题被标记为可能重复。另一个问题的答案是:
lines = '''"AAA", "BBB", "Test, Test", "CCC"
"111", "222, 333", "XXX", "YYY, ZZZ"'''.splitlines()
for l in csv.reader(lines, quotechar='"', delimiter=',',
quoting=csv.QUOTE_ALL, skipinitialspace=True):
print l
这看起来会起作用,但是 -
1,如何从文件中读取而不是变量?
2,如何从读者对象中创建数组?
答案 0 :(得分:0)
>>> import csv
>>> with open('eggs.csv', 'rb') as csvfile:
... spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
... for row in spamreader:
... print ', '.join(row)
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam
因此,如果您想将文件转换为列表列表:
import csv
myFileAsArray = []
with open('eggs.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
myFileAsArray.append(row)