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

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.lryc.cn/news/336765.html

相关文章:

  • 大厂Java笔试题之对完全数的处理
  • 【Redis深度解析】揭秘Cluster(集群):原理、机制与实战优化
  • 【JAVA基础篇教学】第六篇:Java异常处理
  • 【ubuntu20.04】安装GeographicLib
  • 从0开始搭建基于VUE的前端项目(四) Vue-Router的使用与配置
  • 力扣爆刷第117天之CodeTop100五连刷71-75
  • ActiveMQ入门案例(queue模式和topic模式)
  • 2024年最新云服务器ECS租用报价费用表-阿里云
  • 第四百五十四回
  • 蓝桥杯算法题:蓝桥骑士
  • sonar搭建(linux系统)
  • 中科软面试题
  • (五)PostgreSQL的管理工具pgAdmin
  • wsl 2在windows11上的设置
  • 常用API时间Arrays
  • CentOS7.9.2009安装Kibana7.11.1
  • Linux nfs 环境搭建
  • 中移物联网 OneOS 操作系统环境搭建和工程创建
  • AI技术创业机会之教育科技
  • 【备战蓝桥杯】2024蓝桥杯赛前突击省一:图论模版篇
  • GEE数据集——2019—2023年全球固定宽带和移动(蜂窝)网络性能(更新)
  • ChatGPT 写作秘籍:指导您如何利用ChatGPT撰写学术论文
  • 【原创】springboot+mysql宠物管理系统设计与实现
  • Android app如何禁止运行在模拟器中
  • libcurl 简单实用
  • 华为OD技术面试-有序数组第K最小值
  • idea如何debug看springsecurity的过滤器顺序
  • 【力扣】125.验证回文串
  • Fantasy Map Creator 2
  • 什么是云原生