Python 将csv文件加载到列表中

Python 将csv文件加载到列表中,python,python-2.7,csv,Python,Python 2.7,Csv,我有一个python脚本,它首先将列表写入CSV文件,然后立即将CSV文件加载到另一个列表 我单独尝试了将列表写入CSV的代码,它可以工作,CSV文件内容以制表符分隔,其内容如下: car house wife 但如果把所有这些放在一起: import csv // write list to CSV file, it works! the_list=["car","house","wife"] the_file = open("my_file.csv", 'w+') writer = cs

我有一个python脚本,它首先将
列表
写入CSV文件,然后立即将CSV文件加载到另一个
列表

我单独尝试了将
列表
写入CSV的代码,它可以工作,CSV文件内容以制表符分隔,其内容如下:

car house wife
但如果把所有这些放在一起:

import csv

// write list to CSV file, it works!
the_list=["car","house","wife"]
the_file = open("my_file.csv", 'w+')
writer = csv.writer(the_file, delimiter='\t')
writer.writerow(the_list)


// read CSV file & load into list
my_file = open("my_file.csv", 'r')
reader = csv.reader(my_file, delimiter='\t')
my_list = list(reader)
print(my_list)

我得到一个打印出来的空列表:
[]
,出什么问题了?

您没有关闭要写入的文件,因此读取时找不到要读取的数据。您可以使用
with
语句来确保文件已关闭

import csv

# write list to CSV file, it works!
the_list=["car","house","wife"]
with open("my_file.csv", 'w') as outfile:
    writer = csv.writer(outfile, delimiter='\t')
    writer.writerow(the_list)


# read CSV file & load into list
with open("my_file.csv", 'r') as my_file:
    reader = csv.reader(my_file, delimiter='\t')
    my_list = list(reader)
    print(my_list)
如果你这样做,阅读效果很好

➜  python test.py
[['car', 'house', 'wife']]

你给我们看的代码没有问题。您确定这就是您正在运行的代码的完整性吗?您是否尝试提供一个到
open
的绝对路径?好的,我现在将完整的代码放在这里。请看一看。他还可以在每个处理步骤后抛出一个_file.close()和我的_file.close()。是的,我认为对使用是一个好模式:)我同意,只是说如果他不知道如何处理doesBy,如何摆脱双方括号
[…]
?现在,如果我做了
my_list.append(“某物”)
,我最终得到了
[['car','house','layer']]'something'
,我的意思是元素被附加在外部
]
之外,读取器返回一个迭代器,它每行返回一个列表。因此,如果您实际上只想附加到第一行,只需执行我的列表[0]。附加(“某物”)