csv文件就是逗号分隔值(Comma-Separated Values)文件
正如其名,文件中的内容以逗号为分割符
而当其中某个字段,也就是某个单元格的内容需要换行的时候
会在该字段上先用引号括起来,再使用\r\n来进行换行
如图
但我正在做的项目需要把csv文件导入hive进行数据分析
所以不需要使用引号内加\r\n进行换行
在我找了很多工具去解决的时候我看到了pandas,暗中庆幸我这学期有开pandas的课程
其中具体的代码如下
import pandas as pd
#读取文件
df = pd.read_csv('F:\\warehouseProject\\comments.csv')
# CONTENT是我需要将其去除换行符号的字段
# map函数就是遍历这个字段,也就是这一列的每一个值,然后使用正则将换行符去除
df["CONTENT"]=df["CONTENT"].map(lambda line: line.replace("\r\n", ""))
# 最后保存成为csv文件
df.to_csv("F:\\warehouseProject\\comments3.csv")
就成功了
但是随之而来的还有一个问题,就是如果这个被我们去掉引号的字段中如果有英文的逗号的话
导出的时候就会出现有几行逗号会多一点的情况,这时候我们在源代码上进行修改
直接将这一行的数据对英文逗号进行替换
import pandas as pd
df = pd.read_csv('F:\\warehouseProject\\comments.csv')
#新增
df["CONTENT"]=df["CONTENT"].map(lambda line: line.replace(",", ""))
df["CONTENT"]=df["CONTENT"].map(lambda line: line.replace("\r\n", ""))
df.to_csv("F:\\warehouseProject\\comments3.csv")