Python学习笔记——第十二章、文件读写

文章介绍了Python中使用open函数打开文件的常见参数,如file、mode、encoding和errors,详细解析了各种打开模式如r、w、a等的含义。此外,文章还讨论了如何在finally和with语句中确保文件关闭,以及读写文本文件的方法如read、write和readlines等。
摘要由CSDN通过智能技术生成

第十二章 文件读写

12.1 打开文件

我们在使用文件之前要先将文件打开,这通过open()函数实现。open()函数的语法如下:
在这里插入图片描述
open()函数中的参数还有很多,这里介绍4个常用参数,这些参数的含义如下。

1.file参数

file参数用于表示要打开的文件,可以是字符串或整数。如果file是
字符串,则表示文件名,文件名既可以是当前目录的相对路径,也可以
是绝对路径;如果file是整数,则表示一个已经打开的文件。

2.mode参数

mode参数用于设置文件打开模式,用字符串表示,例如rb表示以只
读模式打开二进制文件。用于设置文件打开模式的字符串中的每一个字
符都表示不同的含义,对这些字符的具体说明如下。
t:以文本文件模式打开文件。

b:以二进制文件模式打开文件。

r:以只读模式打开文件。

w:以只写模式打开文件,不能读内容。如果文件不存在,则创建
文件;如果文件存在,则覆盖文件的内容。

x:以独占创建模式打开文件,如果文件不存在,则创建并以写入
模式打开;如果文件已存在,则引发FileExistsError异常。

a:以追加模式打开文件,不能读内容。如果文件不存在,则创建
文件;如果文件存在,则在文件末尾追加。

+:以更新(读写)模式打开文件,必须与r、w或a组合使用,才能
设置文件为读写模式。

这些字符可以进行组合,以表示不同类型的文件的打开模式,如下
表所示。
在这里插入图片描述
3.encoding参数

encoding用来指定打开文件时的文件编码,默认是UTF-8编码,主
要用于打开文本文件。

4.errors参数

errors参数用来指定在文本文件发生编码错误时如何处理。推荐erro
rs参数的取值为’ignore’,表示在遇到编码错误时忽略该错误,程序会继
续执行,不会退出。

f=open('text.txt','w+')#创建了一个TXT文件
f.write('world')#将'world'写入文件
f.close()

f=open('text.txt','r+')
f.write('1234567')#已经创建了,再打开则覆盖原本内容
f.close()

f=open('text.txt','a')
f.write('hahahahahaha')#在文件中追加内容
f.close()

#采用普通字符串表示绝对路径文件名,其中的反斜杠需要转义
fname=r'C:\Users\流痕\Desktop\Python文件\text.txt'
f=open(fname,'a+')
f.write('world')#打开text文件,在末尾添加world
f.flush()
f.close


12.2 关闭文件

12.2.1 在finally代码块中关闭文件

对文件的操作往往会抛出异常,为了保证对文件的操作无论是正常结束还异常结束,都能够关闭文件,我们应该将对close()方法的调用放在异常处理的finally代码块中。

f_name='text.txt'
f=None

try :
    f=open(f_name)#判断f变量是否有数据,若有,说明文件打开成功
    print('打开文件成功')
    content=f.read()
    print(content)
except FileNotFoundError as e:
    print('文件不存在,请先创建文件')
except OSError as e:
    print('处理OSError异常')
finally :
    if f is not None :
        f.close()
        print('关闭文件成功')

打开文件成功
1234567hahahahahaha
关闭文件成功

12.2.2 在with as代码块中关闭文件

with as 代码块可以自动释放资源(包括关闭文件的操作),可以替代finally代码块,优化代码结构,提高可读性。

f_name='text.txt'
with open(f_name) as f:
    content=f.read()
    print(content)

1234567hahahahahaha

12.3 读写文本文件

读写文本文件的相关方法如下。

  1. read(size=-1):从文件中读取字符串,size限制读取的字符数,size=-1指对读取的字符数没有限制。
  2. readline(size=-1):在读取到换行符或文件尾时返回单行字符串。如果已经到文件尾,则返回一个空字符串。size是限制读取的字符数,size=-1表示没有限制。
  3. readlines():读取文件数据到一个字符串列表中,每一行数据都
    是列表的一个元素。
  4. write(s):将字符串s写入文件中,并返回写入的字符数。
  5. writelines(lines):向文件中写入一个字符串列表。不添加行分隔符,因此通常为每一行末尾都提供行分隔符。
  6. flush():刷新写缓冲区,在文件没有关闭的情况下将数据写入文
    件中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值