76 Python写入csv文件时出现空行_newline参数解决

news2025/1/25 4:26:32

76 Python写入csv文件时出现空行_newline参数解决

文章目录

  • 76 Python写入csv文件时出现空行_newline参数解决
    • 1. 准备工作
    • 2. with open 语句没有newline参数
    • 3. with open 语句有newline参数
    • 4. 总结

1. 准备工作

  1. 在电脑D盘新建一个【76】文件夹。

  2. 用VScode编辑器打开【76】文件夹。

  3. 在【76】文件夹里新建一个76.py文件。

  4. 大家在76.py文件里编写代码。

2. with open 语句没有newline参数

# 导入os 模块,用于创建文件目录
import os
# 导入 csv 模块,用于操作CSV文件
import csv

# mkdir作用是创建目录
# 相对路径
os.mkdir("各班级成绩")

# 用字典存储要写入CSV文件的信息
dict1 = {'姓名': '刘一', '成绩': '100'}
dict2 = {'姓名': '陈二', '成绩': '90'}

# 设置文件的表头,即列名
header = ['姓名', '成绩']

# 文件的相对路径
file_path = r'各班级成绩\1班成绩单.csv'

# 以自动关闭文件的方式创建文件对象
with open(file_path, 'w', encoding='utf-8') as f:
    
    # 实例化类 DictWriter(),得到 DictWriter 对象
    dw = csv.DictWriter(f, fieldnames=header)

    # 写入文件的表头
    dw.writeheader()

    # 写入内容,每次写入一行
    dw.writerow(dict1)
    dw.writerow(dict2)

newline [n’ju:laɪn]:换行。

运行上述代码,我们在【76】文件夹里新建了一个【各班级成绩】文件夹。

在【各班级成绩】文件夹里新建了一个【一班成绩单.csv】文件。

并在【一班成绩单.csv】文件写入了2个字典里的内容。

打开【一班成绩单.csv】文件,我们发现CSV文件行与行之间多了一行空行。

在这里插入图片描述

这是因为newline参数在作妖。

在open或with open语句中,参数 newline 表示用于区分换行符,只对文本模式有效,可以取的值有None\n\r

意思就是在open或with open语句中,如果没有添加newline参数,那csv文件行与行之间会默认有个空行。

如果你不需要这个空行,那你可以在open或with open语句中添加newline参数

参数 newline可以取的值有None\n\r

3. with open 语句有newline参数

# 导入 csv 模块,用于操作CSV文件
import csv

# 用字典存储要写入CSV文件的信息
dict1 = {'姓名': '刘一', '成绩': '100'}
dict2 = {'姓名': '陈二', '成绩': '90'}

# 设置文件的表头,即列名
header = ['姓名', '成绩']

# 文件的相对路径
file_path = r'各班级成绩\2班成绩单.csv'


# 以自动关闭文件的方式创建文件对象
with open(file_path, 'w', encoding='utf-8', newline="\r") as f:
    
    # 实例化类 DictWriter(),得到 DictWriter 对象
    dw = csv.DictWriter(f, fieldnames=header)

    # 写入文件的表头
    dw.writeheader()

    # 写入内容,每次写入一行
    dw.writerow(dict1)
    dw.writerow(dict2)

运行上面的代码,打开得到的【2班成绩单.csv】文件,如下所示:

在这里插入图片描述

此时输出的结果就没有空行。

这是因为我在with open 语句中增加了newline=""参数。

# 以自动关闭文件的方式创建文件对象
with open(file_path, 'w', encoding='utf-8', newline="") as f:

【温馨提示】

上述两段代码是有区别的。

  1. 第2段代码我删除了os相关的语句(下面的代码被删除):
# 导入os 模块,用于创建文件目录
import os

# mkdir作用是创建目录
# 相对路径
os.mkdir("各班级成绩")

因为【各班级成绩】文件夹已经存在,如果我们在创建该目录,程序会报错。

  1. 我修改了下面的路径变量:

第一段代码的路径变量:

# 文件的相对路径
file_path = r'各班级成绩\1班成绩单.csv'

第二段代码的路径变量:

# 文件的相对路径
file_path = r'各班级成绩\2班成绩单.csv'

将【1班成绩单.csv】修改成了【2班成绩单.csv】

4. 总结

newline=""参数输出的结果没有空行。

没有newline=""参数输出的结果有空行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/396789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第1章 多线程基础

第1章 多线程基础 1.1.2 线程与进程的关系 进程可以看成是线程的容器,而线程又可以看成是进程中的执行路径。 1.2 多线程启动 线程有两种启动方式:实现Runnable接口;继承Thread类并重写run()方法。 执行进程中的任务时才会产生线程&a…

用Python写一个zidong发送直播弹幕脚本,让你在直播间霸屏

前言 现在直播这个东西可以说是哪哪都有,有些的直播还有看弹幕来进行抽奖活动,这不我表弟昨天晚上就碰上一个了 说是主播随机抽取一个弹幕抽奖,我表弟辛辛苦苦手动发送了一晚上的弹幕,结果啥也没中,怪可怜的 今天闲…

65 - 进程互斥锁的优化实现

---- 整理自狄泰软件唐佐林老师课程 文章目录1. 问题一1.1 当前实现的深入分析1.2 解决方案设计1.3 解决方案实现步骤1.4 编程实验:EnterCritical()重设计2. 问题二2.1 互斥锁的优化设计2.2 互斥锁的优化实现方案2.3 编程实验:互斥锁的优化实现3. 小结1.…

【C语言】每日刷题 —— 牛客

前言 大家好,今天带来一篇新的专栏 c_牛客,不出意外的话每天更新十道题,难度也是从易到难,自己复习的同时也希望能帮助到大家,题目答案会根据我所学到的知识提供最优解。 🏡个人主页:悲伤的猪大…

小白做什么兼职项目赚钱?宝妈拍短视频赚钱的方法

很多宝妈在家带孩子之余想做兼职赚点小钱,依靠互联网无疑是比较方便的途径,在刷单、微商等网上兼职成为过去式以后,很多宝妈选择了短视频创业。 宝妈怎么拍短视频? 宝妈因为要照顾宝宝还要兼顾家务,空闲的时间比较琐碎…

Rust Web入门(七):WebAssembly

本教程笔记来自 杨旭老师的 rust web 全栈教程,链接如下: https://www.bilibili.com/video/BV1RP4y1G7KF?p1&vd_source8595fbbf160cc11a0cc07cadacf22951 学习 Rust Web 需要学习 rust 的前置知识可以学习杨旭老师的另一门教程 https://www.bili…

5款电商团队必须会用的任务管理工具

随着企业数字化转型,高效率的团队协作和远程协同办公成为越来越多团队的强烈需求,今天说说电商团队,电商运营很大一个特点是多场景、跨部门、高频协作。并且要通过多平台和形式跟新兴媒体进行品宣争夺市场份额。 这种情形对跨部门的团队协作…

java基础学习 day50(内部类)

什么是内部类? 写在一个类里面的类就叫做内部类 什么时候用到内部类? B类表示的事物是A类的一部分,且B单独存在没有意义。 比如:汽车和发动机,ArrayList和迭代器,人和心脏 内部类的访问特点 内部类可以…

STM32U5开发(1)----通过 USART1 发送数据

概述 通过 USART1 发送一些数据。 最近在弄ST和GD的课程,需要样片的可以加群申请:6_15061293。 生成例程 使用STM32CUBEMX生成例程,这里使用NUCLEO-U575ZI开发板。 选择工程的时候,先不必选择加载了TrustZone。 样品申请 h…

STM32程序下载和启动方式

目录1 BOOT引脚配置和下载说明2 关于串口下载方式3 关于一按复位就跑代码4 关于下载调试速度5 关于三种启动方式5.1 FLASH启动5.2 系统存储器器启动5.3 SRAM启动6 关于程序的三种下载方式1 BOOT引脚配置和下载说明 BOOT0BOOT1程序运行ST-Link下载串口下载启动说明xx无0x√√用…

AList搭建网盘挂载硬盘并挂载网络资源(傻瓜式自配置教程)

AList搭建网盘挂载硬盘并挂载网络资源1.安装AList1.1 下载1.2 解压1.3 启动1.4 登录1.5 改密1.6 开机自启2.添加云盘存储2.1 添加阿里云盘2.2 阿里云刷新令牌2.3 查看云盘文件3.映射本地盘3.1 下载RaiDrive3.2 安装3.2 设置4.延伸参考资料: AList: https://alist.n…

Warshall算法

🚀write in front🚀 📜所属专栏:> 算法 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对我…

数据中台架构体系理解

目前,大部分企业更倾向于数据集中采集、存储,并应用分层建设。这种方式一方面有利于应用系统的快速部署,另一方面也保证了数据的集中管理与运营,体现数据的资产、资源属性。 数据中台的出现弥补了数据开发和应用开发之间由于开发…

工厂设计模式

介绍 Java工厂设计模式主要分为三种: 简单工厂模式(Simple Factory Pattern):使用一个工厂类来封装对象创建的过程,客户端只需要通过传递不同的参数来获取不同的产品对象,从而避免了客户端直接创建产品对象的操作工厂方法模式(Factory Method Pattern):将工厂类抽象出来,每个…

fastjson 返回 $ref 数据

文章目录问题描述:1、重复引用:2、循环引用:原因分析:1、重复引用:2、循环引用:反序列化:1、开启引用检测:2、关闭引用检测:小结:问题描述: 问题…

小樽C++ 单章⑨ 文件

目录 1.文件类型变量的定义与引用 1.1 文件的读写 1.2 fopen()版 (C专用) 1.3 文件输入输出流 (C专用) 文件有两种保存方式:二进制文件、文本文件。例如存121这个数字。 二进制存储效率高,但是对我们不友好,对每个值都要变成二进制太难啦…

uniapp实现自定义相机

自定义相机起因由于最近用uniapp调用原生相机容易出现闪退问题,找了很多教程又是压缩图片又是优化代码,我表示并没有太大作用!!实现自定义相机使用效果图拓展实现多种自定义相机水印相机身份证相机人像相机起因 由于最近用uniapp调用原生相机容易出现闪退…

MindAR的网页端WebAR图片识别功能的图片目标编译器中文离线版本功能(含源码)

前言 之前制作了基于MindAR实现的网页端WebAR图片识别叠加动作模型追踪功能的demo,使用了在线的图像目标编译器对识别图进行了编译,并实现了自制的WebAR效果,大致效果如下: 但是在线的编译器在操作中也不是很方便,我…

207. 课程表

207. 课程表https://leetcode.cn/problems/course-schedule/ 难度中等1526 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [a…

One-YOLOv5 v1.2.0 Released(支持分类,检测,实例分割)

0x0. 引言0x1. 快速开始0x2. 在COCO上的精度表现 yolov5s-defaultyolov5s-seg 0x3. 在COCO上的单GPU性能表现特性 & bug 修复 特性用户反馈的bug 下个版本的展望附件常用预训练模型下载列表 0x0. 引言 🌟 v1.2.0同步了ultralytics yolov5的上游分支v7.0 &…