0

我正在尝试从 csv 文件在 python 中创建一个列表。CSV 文件仅包含一列,大约有 300 行数据。该列表应该(理想情况下)在每一行中包含一个数据字符串。

当我执行下面的代码时,我最终得到一个列表列表(每个元素都是一个列表,而不是一个字符串)。我使用的 CSV 文件格式是否不正确,或者我还缺少其他什么?

filelist = []                
with open(r'D:\blah\blahblah.csv', 'r') as expenses:
    reader = csv.reader(expenses)
    for row in reader:
        filelist.append(row)
4

3 回答 3

7

row是一行,有一个字段。您需要获取该行中的第一项:

filelist.append(row[0])

或更简洁地说:

filelist = [row[0] for row in csv.reader(expenses)]
于 2013-05-13T22:20:56.210 回答
1

看来您的“csv”不包含任何分隔符,例如“;” 或者 ”,”。因为你说它只包含 1 列。所以它不是真正的 csv,也不应该有分隔符。

所以你可以简单地逐行读取文件:

filelist = []
for line in open(r'D:\blah\blahblah.csv', 'r').readlines():
    filelist.append(line.strip())
于 2013-05-13T22:26:42.413 回答
0

每行被读取为单元格列表。所以你想做的是

output = [ row[0] for row in reader ]

因为您只在每一行中填写了第一个单元格。

于 2013-05-13T22:22:34.003 回答