python之文件操作与管理

1、文件操作

通过open()操作,来创建文件对象,下面是open()函数语法如下:

open(file,mode ='r',buffering =-1 , encoding = None ,errors = None , newline = None,closefd = True,opener =None)

下面来说以下各个参数的 含义:

file参数

参数是要打开的文件,可以是字符串或整数,字符串可以是文件名(可以是绝对路径也可以是相对路径)若是数字则就是文件描述符,文件描述符来只想一个已经打开的文件

mode参数

表示文件打开模式,以下是最基本的文件打开模式

字符串

说明

只读模式打开文件
w写入模式
x独占创建模式,文件不存在时并以写入模式打开,若文件已存在就会抛出错误
a追加模式,若文件存在则会写入内容并追加到文件末尾
b

二进制模式

t文本模式
+更新模式

对于文本文件可以使用r+,w+,x+、a+,对于二进制文件可以使用rb+、wb+、xb+、ab+。

(r+在文件不存在时抛出错误,w+在文本不存在时会创建文件,存在就会把文件内容全部清空,a+和w+在文件不存在时会创建文件而存在时会追加内容)

3、buffering参数

也就是所谓的设置缓冲区,默认值时-1,当为默认时系统默认是4096字节或8192字节

当为0时,缓冲区关闭,当缓冲区关闭时会直接写入文件,当大于0时就用来设置缓冲区的大小

(缓冲区出现的目的是为了提高效率)

4、encoding参数和errors参数

encoding用来指定文件编码,用于文本文件的打开,errors是用于编码错误发生时的错误处理

5、newline参数

用来设置换行模式

6、closefd和opener参数

当closefd为true时,文本对象调用close()方法来关闭文件同时也会关闭文件描述符所对应的文件;当为false时文本对象会调用close()方法来关闭文件但不会关闭文件描述符所对应的文件

opener是用于打开文件时执行的操作,该函数返回一个文本描述符

2、关闭文件

当使用open函数打开文件后还需要使用close方法来关闭文件,若不这样做常常会抛出异常

调用close方法常常是在finally代码块,但是我更建议在with as代码块中进行自动资源管理

(这个方法在前面也是使用过的)

下面是代码示例:

f = 'test.txt'try:f_1 = open(f, mode='x')except OSError as e:print('文件打开失败')
else:print('文件打开成功')try:content = f_1.read()print(content)except OSError as e:print('处理Os异常')finally:f_1.close()# 使用自动管理来实现
with open(f, 'w') as f_1:content = f_1.read()print(content)

注:在这里使用的是x所以第一步不会报错

下面是代码结果

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

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

相关文章

Python(3):条件语句+循环语句+逻辑运算符+符号优先级

文章目录 一、if语句1.if语句2.if 和 elif区别3.三元表达式 二、循环语句1.range函数和循环结束关键字2.while循环3.for循环 三、逻辑运算符1.and语句2.or语句3.not语句4.逻辑运算法的优先级 四、python运算符优先级和结合性一览表 一、if语句 1.if语句 1.if单分支语句 格式…

Python项目1 外星人入侵_外星人

在本章中,我们将在游戏《外星人入侵》中添加外星人。首先,我们在屏幕上边缘附近添加一个外星人,然后生成一群外星人。我们让这群外星人向两边和下面移 动,并删除被子弹击中的外星人。最后,我们将显示玩家拥有的飞船数量…

从路由器syslog日志监控路由器流量

路由器是关键的网络基础设施组件,需要随时监控,定期监控路由器可以帮助管理员确保路由器通信正常。日常监控还可以清楚地显出通过网络的流量,通过分析路由器流量,安全管理员可及早识别可能发生的网络事件,从而避免停机…

算法训练营第二十三天(二叉树完结)

算法训练营第二十三天(二叉树完结) 669. 修剪二叉搜索树 力扣题目链接(opens new window) 题目 给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>L) 。你可能需要改…

SQLite数据库在Linux系统上的使用

SQLite是一个轻量级的数据库解决方案,它是一个嵌入式的数据库管理系统。SQLite的特点是无需独立的服务器进程,可以直接嵌入到使用它的应用程序中。由于其配置简单、支持跨平台、服务器零管理,以及不需要复杂的设置和操作,SQLite非…

共享低碳未来!科士达新一代工商业储能产品引爆ESIE 2024

4月11日,第十二届储能国际峰会暨展览会(ESIE 2024)在北京首钢会展中心盛大开幕,科士达以“数智光储,共享低碳未来”为主题,携多款工商业储能产品及解决方案惊艳亮相本次盛会。 展会首日,科士达展…

C/C++基础----运算符

算数运算符 运算符 描述 例子 两个数字相加 两个变量a b得到两个变量之和 - 两个数字相减 - * 两个数字相乘 - / 两个数字相除 - % 两个数字相除后取余数 8 % 3 2 -- 一个数字递减 变量a:a-- 、--a 一个数字递增 变量a: a 、 a 其中递…

VSCode中调试C++程序

目录 一、准备工作:安装插件 1、C/C插件 ​编辑 2、CMake插件 3、CMake tool插件 二、调试过程 1、debug 2、打断点 3、调C/C文件 每次重新调试的时候都忘了具体步骤,直接给自己写个备忘录好了。 一、准备工作:安装插件 1、C/C插件…

zabbix“专家坐诊”第236期问答

问题一 Q:我的trap里已经可以收到信息了,后续要怎么创建监控项呀? A:参考: 问题二 Q:snmp和snmp trap咋搞? A:你指的是如何开启这些协议还是如何做监控项? Q&#xff1…

Opentelemetry——Observability Primer

Observability Primer 可观测性入门 Core observability concepts. 可观测性核心概念。 What is Observability? 什么是可观测性? Observability lets us understand a system from the outside, by letting us ask questions about that system without know…

Java——数组练习

目录 一.数组转字符串 二.数组拷贝 三.求数组中元素的平均值 四.查找数组中指定元素(顺序查找) 五.查找数组中指定元素(二分查找) 六.数组排序(冒泡排序) 七.数组逆序 一.数组转字符串 代码示例: import java.util.Arrays int[] arr {1,2,3,4,5,6}; String…

数据分析——数据规范化

数据规范化是数据分析中的一个重要步骤,其目的在于确保数据的一致性和可比性,提高数据质量和分析结果的准确性。以下是一些数据规范化的常见方法和技术: 数据清洗:此步骤主要清除数据中的重复项、空格、格式错误等,确…

批归一化(BN)在神经网络中的作用与原理

文章目录 1. 批归一化(BN)在神经网络中的作用与原理1.1 作用与优势1.2 原理与推导 2. 将BN应用于神经网络的方法2.1 训练时的BN 2. 将BN应用于神经网络的方法2.1 训练时的BN2.2 测试时的BN代码示例(Python): 3. BN的优…

编程规范(保姆级教程)

文章目录 为什么需要编程规范?💡代码检测工具 ESLint💡代码格式化 Prettier💡ESLint 与 Prettier 配合解决代码格式问题eslint支持ts约定式提交规范Commitizen助你规范化提交代码什么是 Git Hooks使用 husky commitlint 检查提交…

探索设计模式的魅力:MVVM模式在AI大模型领域的创新应用-打破传统,迎接智能未来

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 MVVM模式在AI大模型领域的创新应用-打破传统迎接智能未来 🚀 “在人工智能的领域里&a…

【Entity Framework】如何使用EF中的生成值

【Entity Framework】如何使用EF中的生成值 文章目录 【Entity Framework】如何使用EF中的生成值一、概述二、默认值三、计算列四、设置主键五、显示配置值生成六、设置日期/时间值生成6.1 创建时间戳6.2 更新时间戳 七、替代值生成八、无值生成九、总结 一、概述 数据库列的值…

DHCP抓包分析

DHCP动态路由配置协议,是C/S架构,由DHCP服务器为客户端动态分配IP信息。 DHCP客户端首次接入网络数据交互过程: 如何解决IP地址的冲突: ▫ DHCP服务器端:收到DHCP DISCOVER报文时,给客户端分配IP地址前会发…

【C++第三阶段】stackqueue容器

以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 stack容器queue容器 stack容器 是什么?功能是什么?常用接口是什么?局限性有哪些?优势又有哪些? 栈容器,先进…

error-ckeditor-duplicated-modules 在vue中引入ckeditor插件报错

报错原因: 由于集成了webpack,统一引入了ckeditor ,但是页面里面我们又通过import引入了一遍,所以导致引入重复了 解决: ckeditor本身除了基本的一些功能,其他基本全靠插件引入,所以想加功能必…

谷歌推出Vids:AI驱动的PowerPoint,重新定义演示文稿的未来|TodayAI

不管你喜不喜欢,找到集成了AI技术以简化常见任务的工具和服务变得越来越容易。谷歌的应用套件迅速成为了一个集成了Gemini AI的产品中心,这些产品可以在工作场所到你的家中的任何地方使用。例如,如果在工作中做演示一直是你的痛点&#xff0c…