Python写入CSV出现空行解决方法

标题Python写入CSV出现空行解决方法

最近在用Python创建写入csv文件,也就在无形中踩到一些坑,也因此记录下来,作为纠错,也希望帮到大家。

前提:使用csv存储多维数组元素,发现写入后,使用Excel打开该csv文件会出现空行,使用文件方式读取该csv文件输出会出现“\n"。

解决方法:在csv文件生成时,添加参数设置即可,即 newline=“”
with open("data.csv","w",encoding="utf-8",newline="") as csvfile

核心关键代码块(有空行):

def WriteToCSV(nump,row):   # 设置一个3行4列矩阵
    with open("data.csv","w",encoding="utf-8") as csvfile:
        writer=csv.writer(csvfile)
        for i in range(row):
            writer.writerow(nump[i])

生成的csv文件:
Python写入CSV出现空行解决方法_第1张图片
读取的csv文件:
Python写入CSV出现空行解决方法_第2张图片
修正后代码块:
添加参数设置 newline=“” 即可

def WriteToCSV(nump,row):
    with open("data.csv","w",encoding="utf-8",newline="") as csvfile:
        writer=csv.writer(csvfile)
        for i in range(row):
            writer.writerow(nump[i])

在这里插入图片描述
Python写入CSV出现空行解决方法_第3张图片

完整的测试代码块:

import numpy as np
import csv
import io

def main():
    numpp=np.zeros((3,4))  # 使用矩阵创建一个3行4列矩阵,初始元素为0
    row,col=numpp.shape    # 获取该矩阵的行列数
    WriteToCSV(numpp,row)
    readCSV()
    #readCSVIO()
    
def WriteToCSV(nump,row):
    with open("data.csv","w",encoding="utf-8",newline="") as csvfile:  # newline="" 去除空行
        writer=csv.writer(csvfile)
        for i in range(row):
            writer.writerow(nump[i])

'''
使用csv包自带的函数读取csv文件
'''
def readCSV():
    with open("data.csv","r",encoding="utf-8") as csvfile:
        reader=csv.reader(csvfile)
        for row in reader:
            print(row)


'''
使用IO 文件格式读取文件
'''
def readCSVIO():
    a=open("data.csv","r")
    print(a.readlines())


if __name__=="__main__":
    main()            

你可能感兴趣的:(Python-OpenCV,python,开发语言,numpy)