zoukankan      html  css  js  c++  java
  • 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个字符

  • 相关阅读:
    【css】用纯 CSS 判断鼠标进入的方向
    【window】系统禁止运行脚本
    【go】VSCode配置Go插件和debug设置
    【PHP】php之Trait详解
    【layui】laydata 自定义日期之外格式的处理办法
    【PHP】防止视频资源被下载的解决办法
    【Markdown】 编辑器Editor.md集成使用
    代码之间为什么要加空格?
    求求你,别问了,Java字符串是不可变的
    养生吧,程序员!
  • 原文地址:https://www.cnblogs.com/DoingBe/p/9409744.html
Copyright © 2011-2022 走看看