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中的文件操作的主要内容,如果未能解决你的问题,请参考以下文章

操作栏标签片段中的片段?

python常用代码片段总结

我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?

学习笔记:python3,代码片段(2017)

常用python日期日志获取内容循环的代码片段

VSCode自定义代码片段——git命令操作一个完整流程