程序出错分析

你的代码

with open(r"C:\Users\13113\Desktop\surveyRes.csv", newline='', encoding='utf-8') as f:
    txt1=f.read()
#print(txt1)
txt1=txt1.replace("\n",",")
#print(txt1)
lst=txt1.split(",")
lst2=lst[8:-1:7]
print(lst2)

运行的结果


对比下面csv文件的内容,可以看出前12行的college列是获取正确的,但到后面取到的是第13行的number列,这就有问题了。 显然是 lst=txt1.split(",") 这个出问题了,说明除了各列之间的英文逗号分隔符外,在字段内容中还出现了英文逗号。

但是你用excel打开csv文件,好像也没发现问题。那怎么快速找出问题呢?

这里可以用vscode打开这个csv文件,利用查找功能查找“英文逗号”,它会高亮显示被查到的内容,如下。重点看第12行。可以看到字段中有“英文逗号”,就是:"Python编程相关课程, 机器学习相关课程" 。这一列中是“英文逗号”。 那为什么csv文件没问题了,因为这列的内容是用双引号括起来的,双引号括起来了。如果你用excel打开该csv文件,会发现字段内容并不会显示双引号。也就是这个双引号是有特殊作用的,并不是字段内容的一部分。 后面的行也存在这个情况,如第14行。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容