Python 文件读写

文件读写

程序运行时所产生的数据,是存储在内存里面的。当我们终止程序或者计算机被关机时,内存就被会清空,数据就被全部丢失。我们需要把有用的数据从内存迁移到磁盘等永久存储设备,文件读写就是一种迁移方式。

Python中,文件的读写操作,由open这个内置模块实现。


读文件

r

>>> f = open('filename','r')
>>> f
<_io.TextIOWrapper name='main.py' mode='r' encoding='UTF-8'> # 文件对象

>>> f.read() # 读取所以内容
>>> f.read(size) # 读取指定内容
>>> f.readline() # 读取一行,并且把指针指向下一行
>>> f.readlines() # 以行为单位分割成一个列表
>>> f.close() # 关闭文件对象,释放资源

# readline 遍历
>>> while True:
>>>  line = f.readline()
>>>  if line:
>>>   print(line)
>>>  else:
>>>   break
>>> f.close()
'line1'
'line2'
'line3'
...

# readlines 遍历
>>> for line in f.readlines():
>>>  line.strip() # strip 字符串方法,去除两边空格 \n 换行符等..
>>> f.close()
'line1'
'line2'
'line3'
...

写文件

w

f = open('filename', 'w')
f.write('hello!')
f.close()

# 读文件时,如果文件不存在,会报错。而写文件时,如果文件不存在则创建它。

a

f = open('filename', 'a') # w 清空文件写入,a 追加到文件末尾写入

r只读,w、a只写,如果想要既可以读,又可以写,可以使用r+、w+、a+等模式。


with

上下文管理器

>>> with open('filename', 'r') as f:
>>>  f.read()

# with 中代码块的内容执行完毕,自动调用 f.close() 释放资源

with 的实现,参考 - 上下文管理器


字符编码

encoding

# open 默认针对文件内容解析的编码的 utf-8,我们可以自己指定编码
# ignore 忽略编码报错,即使乱码也强制读取

f = open('filename', 'r', encoding='gbk', errors='ignore')  

参考 - 字符编码


二进制

rb、wb

# 读取图片、视频等非文本对象、需要用二进制读取

f = open('filename', 'rb') # wb 写入 byte 数据
f.read()
b'\0x1'
Python 教程 Python 入门 Python 时间 Python JSON