csv文件读取 - 单个列表中的每个字符

时间:2016-12-08 00:50:50

标签: python file csv file-read

我对python很新,可能真的需要一些帮助(我现在找不到任何帮助我的东西)。

我想将csv文件读取到list,但不幸的是我的输出不符合预期。而不是像以下列表:

[[Weiz;61744],[Deutschlandsberg;5645]]

我有一个如下所示的列表:

[['W'],['e'],['i'], etc.]

我的代码如下所示:

def readCSV(file):
    for row in open(file,"r+"):
        ftpstream = urllib.request.urlopen(row)
        csvFile = csv.reader(ftpstream.read().decode('latin-1'))
        data = [row for row in csvFile]
        for row in data:
            print(row)

任何人都可以告诉我它为什么不起作用?我现在真的很挣扎......

2 个答案:

答案 0 :(得分:5)

函数csv.reader期望接收行列表,而不是单个字符串(例如ftpstream.read().decode('latin-1')将返回的行)。如果你替换:

csvFile = csv.reader(ftpstream.read().decode('latin-1'))

csvFile = csv.reader(ftpstream.read().decode('latin-1').split('\n'))

我相信它会按预期工作。

答案 1 :(得分:0)

根据您的文件,我认为使用readLine()代替read()会让您获得所需内容。例如:

csvFile = csv.reader(ftpstream.readLine().decode('latin-1'))

而不是

csvFile = csv.reader(ftpstream.read().decode('latin-1'))