Python语言的文件读写
🥑高级语言有很多共同之处,在文件读写这一部分我们就可以类比着之前我们过的C语言的文件读写的操作进行处理。
🥑还记得我们C语言当中的文件进行操作时所需要的哪些步骤吗?文件打开,文件读/写操作,文件关闭。我们的Python语言在这一点和C语言是完全相同的,只有一些细小的差别,那么我们就从这三大步进行学习Python语言的文件读写操作。
🥑1.打开文件
🥑文件的打开需要用到open函数,我们该函数的原型为〈 file 对象名〉=open(〈文件名〉,〈打开模式〉)。其中文件名包括文件的路径和名称,其实我们的C语言当中的fopen函数也是如此,我们的第一个参数为我们想要打开文件的文件名,其实就是默认为该文件夹内的文件。文件的打开模式包括"r","w","rb","wb","a","ab"等。其中r代表的是read,表示以只读的形式打开一个文件,w代表的是write,表示的是以写的形式打开一个文件b表示以二进制的形式写入或者读出,我们的b参数需要和r和w参数共同使用。
🥑其中以r的形式打开一个文件,如果我们指定的路径下找不到文件程序就会产生报错,但是以w的形式打开一个文件即使我们该路径之下没有所示文件也会自行创建一个新的文件继续让我们进行写入的操作。而我们的a参数表示的是在文件的末尾追加指定的内容。以该参数打开一个文件的作用和我们的w参数相同。如果文件存在就打开文件在文件的末尾进行追加的操作,如果不存在就创建一个新文件进行写入的操作。所对应的代码如下:

🥑没有该文件,无法打开,产生报错。
🥑以 ‘w’ 的方式打开即使找不到文件也会自动创建一个新的文件,便于之后的操作。

🥑以 ‘a’ 的方式打开的作用大致和我们的 ‘w’ 的形式打开。
🥑2.文件的读取
🥑我们上面所进行的操作仅仅是打开一个文件,但是没有对文件进行任何其他的操作。要想对文件进行读取操作我们就需要用到read函数。read()的方式每次读取整个文件,它通常用于将文件内容放到一个字符变量当中。如果文件大于可用内存,为了保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。所示代码如下:

file=open('test.txt','r')
strings=file.read()
print(strings)
🥑读取文件的函数并非只有read()一种,我们还可以使用readline()方法。我们的readline()方法每次只读取一行。我们同样可以使用这个函数进行文件内容的读取。和readline()相似的是我们的readlines()方法。readlines()的方式会自动将文件内容分析成一个行的列表。readline()和readlines()方法的使用示范如下:

file=open('test.txt','r')
strings=file.readlines()
print(strings)
🥑3.文件的写入
🥑write(str)方法,write()方法将字符串str写入文件,此方法没有返回值。由于缓冲,在调用flush()或close方法之前,字符串可能不会写入到打开的相关联的文件当中。可以重复调用write()来写入文件,但是务必要使用close来关闭文件。这个我们内存当中的文件缓冲区的关系有关,我们的系统为了提高程序运行的效率并不会执行一句代码就进行一次系统操作。而是在执行一段代码之后才会统一进行文件操作。如果忘记使用close函数就可能还没有写入文件当中,造成数据的遗失。所以为了避免我们因为忘记关闭文件而造成文件数据的丢失我们可以使用with语句进行我们代码的优化其形式如下:

file=open('test.txt','w')
file.write("hello world")
file.close()

with open('test.txt','w') as f:f.write('i am lihua!\n')f.write('i love you\n')
🥑同样的道理我们的写入函数也可以使用writelines()可以将列表中的数据一次性的写入多行到我们的文件当中,而且调用writelines写入多行在性能上会比write一次性写入要好。所示代码如下:

with open('test.txt','w') as f:f.writelines(['nice to meet','you!'])
🥑4.关闭文件
🥑这一部分是我们文件处理当中最简单的但是也是最为重要的函数之一。就像我们上面所说的那样,我们每次对文件完成操作之后,只有将文件关闭,才可以真正的将数据写入到我们的文件当中。我们的close函数的使用方法如下:

🥑5.Python文件操作扩展
🥑和其他语言不同的是,Python语言还可以对文件进行类似于Linux的文件查找操作。举一个简单的栗子,我们可以使用os.name进行查找操作系统的名字,主要的作用在于判断当前正在使用的平台,并给出操作系统的名字。我们还可以使用os.listdir()方法列出path目录下的所有的文件和目录名(包括隐藏的文件)。path参数可以省略,表示当前的目录。诸如此类的功能还有很多下面我们用代码的形式想大家展示:
🍎1.os.name

🥑如图所示,nt表示Windows操作系统,posix表示Linux操作系统。
🍎os.listdir
🍎os.getcwd

🍎os.path
🍎os.rename

🥑那么我们本次博客的内容也就到此结束了,感谢您的观看,再见。
相关文章:
Python语言的文件读写
🥑高级语言有很多共同之处,在文件读写这一部分我们就可以类比着之前我们过的C语言的文件读写的操作进行处理。 🥑还记得我们C语言当中的文件进行操作时所需要的哪些步骤吗?文件打开,文件读/写操作,文件关闭。我们的Py…...
面向对象 ( 上 )
Java面向对象 ( 上 ) 观看b站尚硅谷视频做的笔记 1、 面向过程 (POP) 与面向对象 (OOP) 2、类和对象 2.1、Java 类及类的成员 属性:对应类中的成员变量 行为:对应类中的成员方法。 2.2、类与对象的创建及使用 一、设计类,就是设计类的…...
Node.js学习笔记——会话控制
一、介绍 所谓会话控制就是对会话进行控制 HTTP 是一种无状态的协议,它没有办法区分多次的请求是否来自于同一个客户端, 无法区分用户 而产品中又大量存在的这样的需求,所以我们需要通过 会话控制 来解决该问题 常见的会话控制技术有三种&a…...
tsconfig.json参数详解
tsconfig.json是ts编译器的配置文件,ts编译器可以根据他的信息来对代码进行编译。 想要学习这篇文章小伙伴,可以先去看看下面文章,可以明白tsconfig.json的由来以及如何编译: 在vscode中使用Typescript并运行_typescript vscode…...
Pyecharts Geo绘制可视化地图并展示坐标位置
文章目录 Pyecharts Geo绘制可视化地图安装需要的模块绘制出地图生成空白地图修改参数,调整地图输出格式地图上展示坐标位置输入坐标点将坐标点添加入系列并配置系列完整代码参考文献Pyecharts Geo绘制可视化地图 安装需要的模块 pip install pyecharts绘制出地图 生成空白…...
什么是Hbuilder?--前端工具IDE
一,简介HBuilder 1.1HBuilder HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE。HBuilder的编写用到了Java、C、Web和Ruby。HBuilder本身主体是由Java编写。它基于Eclipse,所以顺其自然地兼容了Eclipse的插件从Fron…...
07-centos-更改数据源、打补丁、查看内核
本文主要是介绍linux-centos的常用操作 更改数据源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 查看内核 [rootcentos02 ~]# uname -a Linux centos02 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 …...
flac格式如何转mp3,3种简单方法值得收藏
flac格式如何转mp3?mp3是小伙伴们所熟知的音频格式,相信flac格式也一定有小伙伴知道,它是一种无损音频压缩格式,是目前流行的数字音乐文件格式之一。那么为什么要将flac格式转换成mp3格式呢,这里小编就给大家讲一讲fla…...
停车位 蓝桥杯模拟
【问题描述】 小蓝要在路边划分停车位。 他将路边可停车的区域划分为L个整数小块,编号1至L。一个车位需要连续的K 个小块,停车位不能重 叠。有的小块属于井盖、消防通道等区域,不能停车。 请问小蓝最多划分出多少个停车位? 【输入…...
ftrace使用实战
诉求:遇到一个问题 echo blocked > /sys/class/block/sdb/device/state 报非法参数,想要知道根因,但是对这块内核代码不熟悉,不知道从哪里下手,那就先用ftrace看看内核调用栈,如下所示。 rootrlk:/home…...
【C#进阶】C# 不安全代码
序号系列文章20【C#进阶】C# 泛型21【C#进阶】C# 匿名方法22【C#进阶】C# 多线程文章目录前言1、什么是不安全代码?2、如何编译不安全代码?3、指针类型4、指针执行的运算符和语句5、固定大小的缓冲区6、函数指针7、不安全代码的总结结语前言 Ὅ…...
Docker安装部署ElasticSearch
1.部署单点ElasticSearch 1.1.创建网络 因为我们还需要部署kibana容器,因此需要让ElasticSearch和kibana容器互联。这里先创建一个网络: docker network create es-net1.2.拉取镜像 考虑到ElasticSearch的兼容性,这里ElasticSearch、kiba…...
【新2023Q2模拟题JAVA】华为OD机试 - 快递业务站
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:快递业务站 题目 快递业务范…...
OpenCV入门(二十四)快速学会OpenCV 23 傅里叶变换
OpenCV入门(二十四)快速学会OpenCV 23 傅里叶变换1.傅里叶变换理论概述2.Numpy实现傅里叶变换2.1 傅里叶变换2.2 傅里叶逆变换2.3 高通滤波3.OpenCV实现傅里叶变换3.1 实现傅里叶变换3.2 实现傅里叶逆变换3.3 低通滤波作者:Xiou 1.傅里叶变换…...
线段树合并
前置知识:权值线段树,动态开点。 引入 我们先来看一道题: 永无乡包含 nnn 座岛,给出每座岛的重要度的排名,名次用 111 到 nnn 来表示。一开始有 mmm 条边连接,接下来有 qqq 次操作。操作分两种ÿ…...
研发效能 | DevOps如何改变游戏公司工作方式?
如果你是游戏开发者,那么在过去几年里,你可能会觉得有人给了你一把双刃剑。 整个行业不断蓬勃发展,但玩家的预期值也越来越高。玩家们总是希望游戏体验能够更快、更真实、更具创造性。此外,他们还希望能够定期推出新的游戏和更新…...
Mongo聚合和Springboot整合Mongo聚合
聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组、过滤等功能,然后经过一系列的处理,输出相应的结果。 语法格式:db.集合名称.aggregate({管道:{表达式}}) 常用管道如下: $group: 将集合中的⽂…...
第06章_索引的数据结构
第06章_索引的数据结构 🏠个人主页:shark-Gao 🧑个人简介:大家好,我是shark-Gao,一个想要与大家共同进步的男人😉😉 🎉目前状况:23届毕业生,目…...
不确定的市场,确定的增长,海尔智家2022全球再逆增
文|螳螂观察 作者| 余一 上市公司2022年年报逐渐进入密集披露期,在当前的年报季窗口,各家公司的业绩情况被高度关注。 3月30日晚,海尔智家发布了2022年财报。财报显示,2022年海尔智家实现收入2435.14亿元,同比增长7…...
测试老鸟手把手教你python接口自动化测试项目实战演示
目录 前言 一、项目准备 二、项目流程 三、完整代码 四、总结 前言 在进行接口自动化测试项目实战之前,我们需要先了解什么是接口自动化测试。接口自动化测试是通过自动化脚本模拟用户请求和服务器响应的过程,以检测接口是否符合预期,确…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
02-性能方案设计
需求分析与测试设计 根据具体的性能测试需求,确定测试类型,以及压测的模块(web/mysql/redis/系统整体)前期要与相关人员充分沟通,初步确定压测方案及具体的性能指标QA完成性能测试设计后,需产出测试方案文档发送邮件到项目组&…...
Python爬虫(52)Scrapy-Redis分布式爬虫架构实战:IP代理池深度集成与跨地域数据采集
目录 一、引言:当爬虫遭遇"地域封锁"二、背景解析:分布式爬虫的两大技术挑战1. 传统Scrapy架构的局限性2. 地域限制的三种典型表现 三、架构设计:Scrapy-Redis 代理池的协同机制1. 分布式架构拓扑图2. 核心组件协同流程 四、技术实…...
【字节拥抱开源】字节团队开源视频模型 ContentV: 有限算力下的视频生成模型高效训练
本项目提出了ContentV框架,通过三项关键创新高效加速基于DiT的视频生成模型训练: 极简架构设计,最大化复用预训练图像生成模型进行视频合成系统化的多阶段训练策略,利用流匹配技术提升效率经济高效的人类反馈强化学习框架&#x…...
【大厂机试题+算法可视化】最长的指定瑕疵度的元音子串
题目 开头和结尾都是元音字母(aeiouAEIOU)的字符串为元音字符串,其中混杂的非元音字母数量为其瑕疵度。比如: “a” 、 “aa”是元音字符串,其瑕疵度都为0 “aiur”不是元音字符串(结尾不是元音字符) “…...
vite ts 配置使用@ 允许js
1.vite.config.ts 配置 import { defineConfig } from vite import vue from vitejs/plugin-vue import { fileURLToPath, URL } from node:url import setup_extend from vite-plugin-vue-setup-extend// https://vite.dev/config/ export default defineConfig({plugins: …...
极昆仑智慧与数元灵科技达成战略合作
近日,北京极昆仑智慧科技有限公司与北京数元灵科技有限公司正式签署产品级融合战略合作协议,双方将围绕 "AIBI商业智能分析" " Hybrid RAG 大模型问答" 等核心大模型应用,实现技术架构与业务场景的深度集成,…...
如何实现本地mqtt服务器和云端服务器同步?
有时候,一个物联网项目,A客户想要本地使用,B客户想要线上使用,C客户想要本地部署,当有网环境时能线上使用。这个时候就需要本地MQTT服务和线上MQTT服务能相互自动转发。 后来经我一翻研究,其实Activemq支持…...
抖去推--短视频矩阵系统源码开发
一、开发短视频矩阵系统的源码需要以下步骤: 确定系统需求: 根据客户的具体业务目标,明确系统需实现的核心功能模块,例如用户注册登录、视频内容上传与管理、多维度视频浏览与推荐、用户互动(评论、点赞、分享…...
