Python中的文件操作
Posted doingbe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的文件操作相关的知识,希望对你有一定的参考价值。
一. 初识文件操作
使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. 根据打开方式的不同能够执行的操作也会有相应的差异.
打开文件的方式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默认使用的是r(只读)模式
二.只读,只写,追加
2.1 只读--r
顾名思义,只能读,oper(文件名,模式,编码格式),例如oper(‘1.TXT‘, mode = ‘r‘, encoding = ‘utf-8‘),文件名是必须项,mode默认值是只读r,encoding默认是utf-8,但是会受到操作系统的影响,所以在win平台这个参数我都是手动设置为utf-8
f = open("1.txt",mode="r", encoding="utf-8") content = f.read() print(content) f.close()
打开之后记得用close关闭.f是句柄,用来操作文件,其中读取文件有read(),readline(),readlines()三个方法,第一个是把整个文件全部读出来,第二个是一次只读一行,第三个是把所有读出来,但是把每一行都放到一个列表里,返回这个列表,最后还可以用for循环句柄,每次返回一行,比如for line in f:
2.2 只写--w
w模式会覆盖掉原有内容,这是需要特别注意的
2.3 追加--a
a模式会在文件最后追加新内容,不用担心覆盖的问题了
三,plus(+)模式
3.1 读写--r+
读写模式,可以读,也可以写,但是必须是先读,因为光标默认是在文件开头,准备读取的.如果要先写,就会覆盖掉原本的内容.该模式下,如果读取了内容,不管此时光标在哪里,再写入或者操作文件的时候都是在结尾进行.
3.2 写读--w+
先清空原本内容然后写入,最后读取,但是读取到的是空的,这个模式没什么意义.有人会说先读取不就好了?nonono,该模式下,一开始是读不到内容的,渣.
3.3 追加读--a+
该模式下,先读和后读都是读不到内容的,也是渣,没用
四.b模式
其实就是各种模式下,字符换成了字节而已.
五.其他相关操作
1. seek(n)
光标移动到n位置,移动的单位是byte,所以如果是utf-8的中文记得要是3的倍数
通常我们使用这个函数都是移动到开头或者结尾.
seek(0):移动到开头
seek(0,2):移动到结尾, 第二个参数表示的是从哪里进行偏移,默认0代表开头,1代表当前位置,2代表结尾
2.tell()
使用tell()我们可以获取光标的当前位置,本人在使用该函数进行练习的时候出现了疑似buf的问题,有兴趣的可以移步链接:https://bbs.pythontab.com/thread-35039-1-1.html,期待有大能可以回答下
3.truncate(n)
该函数用来截断文件,默认从开头到当前位置,n为从开头截取n个字符
以上是关于Python中的文件操作的主要内容,如果未能解决你的问题,请参考以下文章