我有一个 csv 文件,其中一行数据可能如下所示:
10,《苹果、香蕉》,20,...
当我在 Python 中加载数据时,引号内的额外逗号会移动我所有的列索引,因此我的数据不再是一致的结构。虽然我可能会编写一个复杂的算法来遍历每一行并解决问题,但我希望有一种优雅的方法可以将额外的参数传递给 loadtxt(或其他一些函数),该参数将正确忽略引号内的逗号并处理整个报价作为一个值。
请注意,当我将 CSV 文件加载到 Excel 中时,Excel 正确地将该字符串识别为一个值。
您可以使用Python csv模块:https://docs.python.org/2/library/csv.html
给定一个 csv 格式的数据文件:
10,"Apple,Banana",20
20,"Orange,Watermelon",30
Run Code Online (Sandbox Code Playgroud)
使用这个脚本:
from csv import reader
with open('data.csv') as f:
for row in reader(f):
print row
Run Code Online (Sandbox Code Playgroud)
你得到:
['10', 'Apple,Banana', '20']
['20', 'Orange,Watermelon', '30']
Run Code Online (Sandbox Code Playgroud)
由于 loadtxt 需要一个可迭代对象,因此传递它reader(f):
with open('data.csv') as f:
data = loadtxt(reader(f), ...)
Run Code Online (Sandbox Code Playgroud)