python读写文件学习笔记
- 开发
- 34
-
介绍
- python中文件读写的内置函数,返回文件对象
- 使用普通方式打开文件需要使用close()方法手动关闭,使用with方式打开不需要
- 编码
- Windows(也跟使用的编辑软件有关)中普通文本默认使用ANSI编码(GBK),Linux中默认使用utf-8
- GBK兼容GB2312,GBK是在GB2312基础上发展起来的,它不仅包含了GB2312的所有字符,还扩展了更多的字符
- 这里主机介绍文件内容的读写操作,其它操作可参考内置模块:pathlib
语法
- 语法
file = open(filename[,mode[,buffering]],[encoding])
- mode参数
参数 |
如果不存在 |
解释 |
r |
报错 |
以只读模式打开文件。文件的指针将会放在文件的开头 |
rb |
报错 |
以二进制格式打开文件,并且采用只读模式。文件的指针将会放在文件的开头。一般用于非文本文件,如图片、声音等 |
r+ |
报错 |
打开文件后,可以读取文件内容,也可以写入新的内容覆盖原有内容(从文件开头进行覆盖) |
rb+ |
报错 |
以二进制格式打开文件,并且采用读写模式。文件的指针将会放在文件的开头。一般用于非文本文件,如图片、声音等 |
w |
创建 |
以只写模式打开文件 |
wb |
创建 |
以二进制格式打开文件,并且采用只写模式。一般用于非文本文件,如图片、声音等 |
w+ |
创建 |
打开文件后,先清空原有内容,使其变为一个空的文件,对这个空文件有读写权限 |
wb+ |
创建 |
以二进制格式打开文件,并且采用读写模式。一般用于非文本文件,如图片、声音等 |
a |
创建 |
以追加模式打开一个文件。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于写入 |
ab |
创建 |
以二进制格式打开文件,并且采用追加模式。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于写入 |
a+ |
创建 |
以读写模式打开文件。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于读写 |
ab+ |
创建 |
以二进制格式打开文件,并且采用追加模式。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于读写 |
- buffering参数
参数 |
解释 |
0 |
不缓存 |
1 |
缓存 |
大于1 |
缓冲区的大小 |
使用with语句
- 使用普通方式打开文件需要手动关闭文件,而使用with不需要手动关闭文件
- 语法
with expression as target:
with-body
- expression为open函数,target为对象名称
常用方法和属性
- 文件对象方法属性表
类型 |
字符 |
描述 |
属性 |
closed |
查看文件是否关闭,返回布尔值 |
方法 |
close() |
关闭文件 |
方法 |
write(字符串) |
向文件写入内容 |
方法 |
flush() |
将缓存内容写入文件 |
方法 |
read([字符个数]) |
如果省略字符个数(英文和汉字都算1个字符)将读取全部内容,返回字符串类型,注意:打开文件的模式只能是:r或r+ |
方法 |
readline() |
读取一行,返回字符串类型,注意:打开文件的模式只能是:r或r+ |
方法 |
readlins() |
读取全部行,返回列表类型,注意:打开文件的模式只能是:r或r+ |
方法 |
seek(开始位置) |
文件内指针(简单理解为光标)位置操作,从0开始,字符计算方法跟编码方案有关 |
实例
写入文件实例
- 代码
file = open('test6.txt','w',encoding='utf-8')
file.write('python写入文件测试')
file.close()
读取文件实例
- encoding='utf-8’为默认值,可以不写,如果是其他编码则需要指定
- 代码
file = open('test6.txt',encoding='utf-8')
con = file.read()
file.close()
print(con)
读取所有行实例
- 如果不使用循环,只能读取到第一行
- 返回列表类型,每个元素为一个字符串,即文件内的一行内容
- 代码
with open('test6.txt',encoding='utf-8') as f:
con = f.readlines()
print(con)
逐行读取实例
- 适合文件较大,一次性读取所有,占用内存过多
- 如果不使用循环,只能读取到第一行
- 代码
with open('test6.txt',encoding='utf-8') as f:
while True:
line = f.readline()
if not line:
break
print(line)
一次读取整个文件实例
- 返回字符串类型,适合不是很大的文件
- 代码
with open('test6.txt',encoding='utf-8') as f:
con = f.read()
print(con)
原文地址:https://blog.csdn.net/liujinbao8000/article/details/137923761
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:https://www.suanlizi.com/kf/1781571528383664128.html
如若内容造成侵权/违法违规/事实不符,请联系《酸梨子》网邮箱:1419361763@qq.com进行投诉反馈,一经查实,立即删除!