我正在尝试从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)
答案 0 :(得分:7)
row
是一行,包含一个字段。您需要获取该行中的第一项:
filelist.append(row[0])
或者更简洁:
filelist = [row[0] for row in csv.reader(expenses)]
答案 1 :(得分:1)
似乎你的“csv”不包含任何像“;”这样的分隔符要么 ”,”。 因为你说它只包含1列。所以它不是真正的csv,也不应该有分离器。
所以你可以直接读取文件:
filelist = []
for line in open(r'D:\blah\blahblah.csv', 'r').readlines():
filelist.append(line.strip())
答案 2 :(得分:0)
每行都被读作单元格列表。 所以你想要做的是
output = [ row[0] for row in reader ]
因为你只在每一行填写了第一个单元格。