• 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个字符

  • 相关阅读:
    浮点数如何存储与表示(精度问题)
    快速幂详解(幂运算与矩阵)
    斐波那契数列的四种解法(头递归、尾递归、迭代与矩阵快速幂)
    机器码与位运算
    pytorch中参数dim的含义(正负,零,不传)
    查看显卡名称 pytorch
    使用国内源快速下载Python包(以matplotlib为例)
    基于Attention的机器翻译模型(Visualizing A Neural Machine Translation Model)
    GNU Parallel-安装+使用
    统计文件个数、删除空文件等Linux命令
  • 原文地址:https://www.cnblogs.com/DoingBe/p/9409744.html
Copyright © 2020-2023  润新知