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

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、不安全代码的总结结语前言 &#x1f4d…...

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 次操作。操作分两种&#xff…...

研发效能 | 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接口自动化测试项目实战演示

目录 前言 一、项目准备 二、项目流程 三、完整代码 四、总结 前言 在进行接口自动化测试项目实战之前,我们需要先了解什么是接口自动化测试。接口自动化测试是通过自动化脚本模拟用户请求和服务器响应的过程,以检测接口是否符合预期,确…...

【ZYNQ】AXI4总线协议实战:从握手时序到PS-PL高效通信

1. AXI4总线协议基础:从握手信号到通道架构 第一次接触ZYNQ的PS-PL通信时,我被AXI4协议里那些VALID/READY信号搞得头晕眼花。直到在示波器上抓到真实的握手波形,才突然理解这个看似复杂的协议其实像极了我们日常的对话机制——只有当说话方准…...

深度集成AI的VSCode扩展:从代码生成到调试的全流程实战指南

1. 项目概述:一个为VSCode注入AI灵魂的扩展如果你和我一样,每天有超过8小时的时间是在Visual Studio Code(VSCode)里度过的,那么你一定对提升编码效率有着近乎偏执的追求。从代码补全、语法高亮到调试、版本控制&#…...

免费额度即将失效?ElevenLabs 2024.6.1新规生效前,必须完成的5项额度迁移准备

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs免费额度机制的本质解析 ElevenLabs 的免费额度并非按“每月重置”的静态配额,而是一种基于账户生命周期的动态信用池(Credit Pool),其底层由实…...

LrcHelper:3分钟掌握网易云音乐双语歌词下载,告别歌词烦恼

LrcHelper:3分钟掌握网易云音乐双语歌词下载,告别歌词烦恼 【免费下载链接】LrcHelper 从网易云音乐下载带翻译的歌词 Walkman 适配 项目地址: https://gitcode.com/gh_mirrors/lr/LrcHelper 你是否曾为找不到心爱歌曲的歌词而烦恼?或…...

告别网络依赖:CircuitJS1桌面版带你体验离线电路仿真的自由

告别网络依赖:CircuitJS1桌面版带你体验离线电路仿真的自由 【免费下载链接】circuitjs1 Standalone (offline) version of the Circuit Simulator with small modifications based on modified NW.js. 项目地址: https://gitcode.com/gh_mirrors/circ/circuitjs1…...

百度网盘直链解析终极指南:如何实现高速下载的完整技术方案

百度网盘直链解析终极指南:如何实现高速下载的完整技术方案 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 在云存储服务普及的今天,百度网盘作为国内用…...

MySQL 视图使用场景与限制

视图是把查询封装成「虚拟表」的方式,用对了简化查询,用错了性能爆炸。这篇说说视图的用法和注意事项。 什么是视图? -- 视图:保存好的 SQL 查询,像表一样使用 CREATE VIEW view_name AS SELECT column1, column2 FROM…...

Bifrost:轻量高效的实时数据同步平台架构与实战

1. 项目概述:Bifrost,一个被低估的现代数据同步利器如果你正在处理跨数据库、跨数据源的数据同步任务,并且对传统ETL工具的笨重、配置复杂感到头疼,那么maximhq/bifrost这个项目绝对值得你花时间深入了解。我第一次接触Bifrost是在…...

人性最残忍的真相是:你越不把自己当回事,别人就越不把你当回事

那个总给别人买贵东西的人,最后都怎么样了? 目录 那个总给别人买贵东西的人,最后都怎么样了? 我们为什么会忍不住过度付出? 真正的爱,从来都不是单方面的牺牲 爱自己,是所有健康关系的前提 昨天刷到一句话,瞬间戳中了我:“永远不要拿自己辛苦钱,去给别人买自己都舍不…...

OCT-X算法:早期胃癌AI检测的技术突破与应用

1. OCT-X算法:早期胃癌AI检测的技术突破在医疗影像分析领域,胃癌早期检测一直面临着巨大挑战。传统内窥镜检查依赖医生经验判断,存在主观性强、漏诊率高等问题。我们团队开发的OCT-X(One Class Twin Cross Learning)算…...