繁体   English   中英

从 Python 中的 csv 文件读取数据

[英]Reading Data from csv-file in Python

我正在尝试使用 Python 使用以下代码从 csv 文件中读取数据:

with open("test.csv", 'r') as csv_data:
        csv_reader = csv.reader(csv_data, delimiter=',', quotechar='"')
        for row in csv_reader:
            print(row)
            print(row[0])

这是我的 csv 文件: https://drive.google.com/open?id=1KaKcSz_6-huVJvPffHAJIykuxu6BSgKK

按照header中的规定,我希望第一个数字是行号,中间的文字是电影评论,最后的数字是这篇评论的极性。 我的问题是无法识别分隔符,并且 csv 文件中的整行没有分成三列。 这是我的 output:

代码 output

如果需要更多信息,请告诉我。 非常感谢任何帮助。

您应该修复 csv 文件的生成方式。 目前包含:

row_number,text,polarity
"""0"",""Bromwell High cartoon comedy. It ran time programs school life, """"Teachers"""". My 35 years teaching profession lead believe Bromwell High's satire much closer reality """"Teachers"""". The scramble survive financially, insightful students see right pathetic teachers' pomp, pettiness whole situation, remind schools I knew students. When I saw episode student repeatedly tried burn school, I immediately recalled ......... .......... High. A classic line: INSPECTOR: I'm sack one teachers. STUDENT: Welcome Bromwell High. I expect many adults age think Bromwell High far fetched. What pity isn't!"",""1"""

header 线很好,但数据线很糟糕。 首先,它有额外的引号作为第一个和最后一个字符,然后所有引号都加倍。 您必须首先预处理文件:

with open("test.csv", 'r') as fd, open("test2.csv", 'w', newline='\r\n') as out:
    for line in fd:
        if line.startswith('"'):
            line = line.strip()[1:-1].replace('""', '"')
            print(line, file=out)
        else:
            _ = out.write(line)

test2.csv文件现在应该是正确的...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM