python文件读写操作

文章目录

  • 1. open函数介绍
  • 2. 读文件
  • 3. 写文件
  • 4. with 方式读写文件

对文件进行读写操作是很常见的 I/O 操作,在Python中我们可以通过内置函数 open来完成。

1. open函数介绍

使用open函数,可以打开一个已经存在的文件,或者创建一个新文件。
语法:open(name, mode, encoding)

  • name:要打开的目标文件名的字符串,也就是文件所在的具体路径。为防止路径中出现转义问题,可以在路径前加一个r.
  • mode:设置文件打开的模式,包括只读、写入、追加等
  • encoding:编码格式,推荐使用utf-8

注意:在文件路径前面加r是为了取消字符串中的所有可能转义,即字符串的所有字符都会被当成正常字符

mode常见模式

文件读写模式 描述
r 只读模式,文件不存在会报IO错误,默认就是该模式
w 用于写模式,文件不存在就会自动创建
a 用于追加,文件不存在会自动创建
b 二进制模式
r+ 相当于r+w,可读可写,文件不存在会报IO错误
w+ 相当于w+r,可读可写,文件不存在会自动创建
a+ 相当于a+r,可追加可写,文件不存在会自动创建

注意:默认都是以文本模式打开文件,如果要以二进制模式打开,那么就给对应模式加上b即可,如rbwbabrb+wb+ab+

2. 读文件

读取文件操作步骤分为三步,打开文件、读数据、关闭文件。

# 1. 以 r 模式打开文件, 获取文件对象
f = open(r"D:\\test.txt", "r", encoding='utf-8')

# 2. 读文件
data = f.read()  

# 3. 关闭文件
f.close()  

常见读取文件数据函数

函数 描述
read() 每次读取整个文件,将读取内容放到字符串中,返回str对象
readline() 每次只读文件中的一行内容,将读取到的一行内容放到字符串中,返回str对象
readlines() 每次按行来读取整个文件,读取到每行内容依次放到列表中,返回list对象

注意

  • 操作文件需要通过open函数打开文件得到文件对象
  • 文件读取完成后,要使用文件对象.close()方法关闭文件对象,否则文件会被一直占用,且会占用操作系统的资源。

读文件支持的模式见open()函数读相关的mode模式

3. 写文件

写文件的操作步骤和读取一样,打开文件、写数据、关闭文件,把读模式改成写模式,把读数据改成写数据。

# 1. 以 w 模式打开文件, 获取文件对象
f = open(r"D:\\test.txt", "w", encoding='utf-8')

# 2. 写文件
data = f.write('hello world')  

# 3. 内容刷新
f.flush()  

写操作注意:

  • 文件如果不存在,使用w模式,会创建新文件
  • 文件如果存在,使用w模式,会将原有内容清空
  • 直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
  • 当调用flush的时候,内容会真正写入文件
  • close()方法,带有flush()方法的功能
  • 在写入内容的时候,可以使用\n来写出换行符
  • 建议避免频繁的操作硬盘,导致效率下降,可以攒一堆,一次性写磁盘。

写文件支持的模式见open()函数写相关的mode模式

4. with 方式读写文件

为避免读取文件出现忘记关闭文件对象的操作,可以在读写文件的时候使用with语句with语句自带关闭文件操作。

# with语句,写操作
with open(r"D:\test.txt", "w") as f:
    f1.write("hello world 1\n")
 
# with 语句读操作
with open(r"D:\test.txt", "r") as f:
    data = f2.read()

以上是python中常见的文件读写操作

你可能感兴趣的:(python,基础,python)