当前位置: 首页 > news >正文

编程小白的自学笔记十三(python办公自动化读写文件)

系列文章目录

编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)

编程小白的自学笔记十一(python爬虫入门三Selenium的使用+实例详解)

编程小白的自学笔记十(python爬虫入门二+实例代码详解) 

编程小白的自学笔记九(python爬虫入门+代码详解) 


目录

系列文章目录

前言

一、什么是Python办公自动化

二、使用open方法读写文件

三、读取内容

1、f.read()方法 

 2、f.readline()方法

 3、readlines()方法

总结


前言

在自学笔记一的时候我已经学了文件的读写,那是学的基础,现在是开始学习办公自动化,要深入学习了。


一、什么是Python办公自动化

Python办公自动化是指通过编写程序来解决办公过程中所遇到的问题,例如 Excel、PPT、Word、邮件、文件处理、数据分析处理、爬虫等数据源,进行自动增删改查等操作,从而提高效率。

二、使用open方法读写文件

with open(文件名,w) as f:

很好理解,w的意思就是write(写)的意思,如果文件不存在就会创建一个新文件,然后写入;如果文件已经存在,新的内容写入会覆盖原来的内容。

还有w+参数,意思是可以读写,w是只能写不能读。

with open(文件名,r,encoding=UTF8) as f:

这个也很好理解,r的意思就是read(读)的意思,如果文件不存在就会报错。

这里还有一个参数a,应该是add的意思,也是写入,但是不会覆盖原内容,会在原内容后面进行追加。

三、读取内容

 按照上面代码打开文件后,我们读取文件需要调用read()方法。

1、f.read()方法 

f.read()方法是读取整个文件,以字符串的形式返回结果。可以加参数,例如f,read(10)表示返回前10个字符。 

 2、f.readline()方法

f.readline()方法是读取一行字符串,以字符串形式返回,这里也可以加参数,例如f.readline(10)表示返回改行前10个字符。

f.readline()调用一次是读取一行数据,那么怎么读取后面行数据呢?

要使用`readline()`读取文件的第二行数据,可以使用以下代码示例:

with open('file.txt', 'r') as f:first_line = f.readline()  # 读取第一行数据并忽略second_line = f.readline()  # 读取第二行数据print(second_line)

在这个示例中,我们打开了一个名为 "file.txt" 的文本文件,并使用只读模式('r')操作。然后,我们使用`readline()`函数两次进行读取。

第一次调用`readline()`用于读取第一行数据,但我们将其赋值给一个变量 `first_line` 并忽略它,因为我们只关心第二行数据。

第二次调用`readline()`用于读取第二行数据,并将其赋值给变量 `second_line`。然后,可以根据需要对其进行进一步处理。

最后,我们通过打印 `second_line` 将第二行的数据输出到控制台。

所以我们需要第几行的数据,我们就需要执行几次,非常不方便。

 3、readlines()方法

readlines()方法是读取整个文件,以列表的形式返回。这样我们就可以通过读取列表操作拿到我们想要行的数据。

readlines()方法也是有参数的,但是很多人都理解错误,例如百度搜索到的结果:

f.readlines(50)是一个文件操作中的函数调用,它的作用是读取文件中的内容,并返回一个由每行内容组成的列表。

其中,参数50表示读取文件的行数,具体意义取决于文件的内容和结构。如果文件包含超过50行的内容,那么读取的行数将不会限制在50行,而是会读取整个文件的内容。如果文件行数不足50行,则会读取文件中的所有行。

需要注意的是,f.readlines()函数通常用于读取文本文件(以文本形式存储的文件),而不适用于二进制文件(如图片、音频、视频等)。

以下是一个示例,展示了如何使用f.readlines(68)读取文件内容到列表中:

with open('file.txt', 'r') as f:lines = f.readlines(50)for line in lines:print(line)

在这个示例中,文件"file.txt"被打开,并以只读模式('r')进行操作。然后,f.readlines(50)会将文件的内容读取到列表lines中,每行内容作为一个元素。接着,通过遍历该列表,可以逐行输出或处理文件的内容。

请注意,如果不提供行数参数,即写成f.readlines(),函数默认会读取整个文件的内容并返回列表。

 以上都是互联网给出的答案,大家可以看到,文中的解释是参数表示读取的函数,其实不然,我们试试以下代码:

import os
with open('test.txt','w') as f:for i in range(79):f.write(f'{i}'* 68)f.write('\n')with open('test.txt','r',encoding='UTF8') as f:for line in f.readlines(79):print(line)

 是不是应该输出79行代码,结果不是,输出结果为:

 

 可以看到只有2行代码。其实参数的意思还是表示字符数量,但是不是每行返回最多79个字符,而是表示返回总字符大于或等于79个字符的最小行,按照代码的例子就是第一行68个字符,小于79,那么再返回一行,68+68=136,大于79了,就不在返回下一行了,所以只返回2行。 


总结

Python读写文件的常用方法有以下几种:

1、使用open()函数打开文件,并指定打开模式(如'r'表示读取,'w'表示写入,'a'表示追加等)。

2、使用read()或readlines()函数读取文件内容。

3、使用write()或writelines()函数向文件中写入内容。

4、使用close()函数关闭文件。

5、使用with语句可以自动关闭文件,避免忘记关闭文件导致资源浪费。

6、在读写文件时,需要注意编码问题,尤其是在处理中文等非ASCII字符时。可以使用codecs模块来解决编码问题。

7、在读写二进制文件时,需要使用二进制模式('rb'和'wb')打开文件。

8、在读写大文件时,可以使用缓冲区来提高效率。

9、在读写文件时,需要注意文件路径的问题,尤其是在不同操作系统下路径的表示方式不同。可以使用os模块来处理文件路径。

相关文章:

编程小白的自学笔记十三(python办公自动化读写文件)

系列文章目录 编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二) 编程小白的自学笔记十一(python爬虫入门三Selenium的使用实例详解) 编程小白的自学笔记十(python爬虫入门二实例代码详解)…...

【Mariadb高可用MHA】

目录 一、概述 1.概念 2.组成 3.特点 4.工作原理 二、案例介绍 1.192.168.42.3 2.192.168.42.4 3.192.168.42.5 4.192.168.42.6 三、实际构建MHA 1.ssh免密登录 1.1 所有节点配置hosts 1.2 192.168.42.3 1.3 192.168.42.4 1.4 192.168.42.5 1.5 192.168.42.6 …...

网络五层协议

应用层(http,https),传输层(udp,tcp),网络层(ip),数据链路层,物理层 什么是http?http 与https 的区别_日晞的博客-CSDN博客 TCP 与UDP 区别_互联网业务udp小包传输_日晞的博客-CSDN博客...

零售行业供应链管理核心KPI指标(一) – 能力、速度、效率和成本

有关零售行业供应链管理KPI指标的综合性分享,涉及到供应链能力、速度、效率和成本总共九大指标,是一个大框架,比较核心也比较综合。 衡量消费品零售企业供应链管理效率和水平的核心KPI通常有哪些? 图片来源-派可数据(…...

MySQL面试题二

1、关系型和非关系型数据库的区别? 关系型数据库的优点 容易理解,因为它采用了关系模型来组织数据。 可以保持数据的一致性。 数据更新的开销比较小。 支持复杂查询(带 where 子句的查询) 非关系型数据库(NOSQL&#x…...

码银送书第五期《互联网广告系统:架构、算法与智能化》

广告平台的建设和完善是一项长期工程。例如,谷歌早于2003年通过收购Applied Semantics开展Google AdSense 项目,而直到20年后的今天,谷歌展示广告平台仍在持续创新和提升。广告平台是负有营收责任的复杂在线平台,对其进行任何改动…...

分布式理论

CAP和BASE CAP C一致性(Consistency) 在分布式环境下,一致性是指数据在多个副本之间能否保持一致性的特征。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致性的状态…...

Excel设置某列或者某行不某行不可以编辑,只读属性

设置单元格只读的三种方式: 1、通过单元格只读按钮,设置为只为 设置行或者列的只读属性,可以设置整行或者整列只读 2、设置单元格编辑控件为标签控件(标签控件不可编辑) 3、通过锁定行,锁定行的修改。锁定的行与只读行的区别在于锁定的行不…...

vue elementui v-for 循环el-table-column 第一列数据变到最后一个

这个动态渲染table表格时发现el-table-column 第一列数据变到最后一个 序号被排到后面 代码 修改后 <el-table:data"tableData"tooltip-effect"dark"style"width: 100%"height"500"><template v-for"(item, index) i…...

宝塔部署阿里云盘webdav

安装Docker 我的系统是CentOS8&#xff0c;如果直接安装会出错&#xff0c;可以看这篇文章&#xff1a;Failed to download metadata for repo ‘appstream‘ docker 国内镜像&#xff1a; http://hub-mirror.c.163.com/下载镜像 宝塔安装docker管理器&#xff0c;然后搜索…...

Ceph分布式存储系统优化分析

Ceph支持多种存储访问接口&#xff0c;现有的多种性能测试工具都可用于Ceph的性能测试&#xff0c;如测试块接口性能的fio&#xff0c;iometer等&#xff1b;测试CephFS接口的filebench&#xff0c;fio等;测试对象接口的cosbench等。Ceph有专用的基准测试集CBT&#xff0c;其包…...

supOS APP开发者课程练习册创建服务(命名:getPropertiesHistory)

创建服务&#xff08;命名&#xff1a;getPropertiesHistory&#xff09;,调用getPropertiesHistory()服务&#xff0c;获取“催化裂化一车间”对象的“重质馏分油_进”最近5分钟内的历史值&#xff0c;每一分钟取一个值&#xff0c;开始时间和结束时间需要调用时间格式化功能集…...

认识excel篇3之数据的有效性(数据验证)

数据有效性不仅能够对单元格的输入数据进行条件限制&#xff0c;还可以在单元格中创建下拉列表菜单方便用户选择输入。如果没有做数据验证&#xff0c;单元格内默认可以输入任意类型的数据。数据验证就是限制单元格输入数据&#xff08;必须输入符合要求的才能输入&#xff09;…...

adb 命令行执行单元测试

文章目录 1、配置 adb 环境变量2、adb 执行测试3、官方文档解读 adb 使用&#xff08;1&#xff09;第一条执行测试的adb命令&#xff08;2&#xff09;am instrument 参数&#xff08;3&#xff09;-e 参数 的 key-value键值对&#xff08;4&#xff09;用法用例 4、存在问题 …...

Ceph入门到精通-Linux下Ceph源码编译和GDB调试

Ceph版本&#xff1a;14.2.22 Linux版本&#xff1a;ubuntu-server 18.04 第一部分 下载Ceph源码 1.1 配置Ceph源码镜像源 Ceph源码是托管在Github上&#xff0c;由于某些原因&#xff0c;国内访问Github网站很慢&#xff0c;所以需要从其他途径加速获取源码。Github官方给出…...

【c语言】动态内存管理(超详细)

他治愈了身边所有人&#xff0c;唯独没有治愈他自己—超脱 csdn上的朋友你们好呀&#xff01;&#xff01;今天给大家分享的是动态内存管理 &#x1f440;为什么存在动态内存分配 我们定义的局部变量在栈区创建 int n 4;//在栈上开辟4个字节大小int arr[10] { 0 };//在栈上开…...

Linux/centos上如何配置管理NFS服务器?

Linux/centos上如何配置管理NFS服务器&#xff1f; 1 NFS基础了解1.1 NFS概述1.2 NFS工作流程 2 安装和启动NFS服务2.1 安装NFS服务器2.2 启动NFS服务 3 配置NFS服务器和客户端3.1 配置NFS服务器3.2 配置NFS客户端 4 实际示例4.1 基本要求4.2 案例实现 1 NFS基础了解 NFS&…...

Element组件浅尝辄止5:Empty 空状态组件

Empty空状态组件&#xff1a;空状态时的占位提示。 如第一次进入当前功能模块时&#xff0c;数据状态为空&#xff0c;则展示空状态&#xff0c;可用到Empty组件 1.How? <el-empty description"描述文字"></el-empty> 2.自定义图片 通过设置 image 属…...

【华为Datacom 综合拓扑案例—分享篇】

拓扑图 题目要求 实验要求&#xff1a; 1、PC1\PC2\PC3\PC4采用DHCP自动获取IP地址&#xff0c;SW5作为服务器&#xff0c;SW3和SW4作为中继 创建地址池ip pool huawei1和ip pool huawei2&#xff0c;租期都为2天 2、SW3与SW4做链路聚合&#xff0c;采用LACP模式。SW3作为主…...

springcloud3 使用openfegin实现getpost请求调用

一 项目介绍 1.1 工程介绍 1.consumer9008 2.provider9009 二 get请求 2.1 消费端 1.controller 2.service 2.2 提供者 1.提供者 2.3 测试请求 地址&#xff1a; http://localhost:9008/consumer/payment/nacos/2223 三 post请求 3.1 消费者 3.2 提供者 3.3 测试请求…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...