• 文件操作


    文件操作

     

    文件操作
    1.初识文件操作
    2.只读(r,rb)
    3.只写(w,wb)
    4.追加(a,ab)
    5.r+读写
    6.w+写读
    7.a+写读(追加写读)
    8.其他写作方式
    9.文件的修改以及另一种打开文件句柄的方式
    主要内容:   
    1.我们可以通过使用open()函数的方式打开文件的句柄
    打开文件的方式:r,w,a,r+,w+,a+,rb,wb,ab,r+b,w+b,a+b,默认使用r(只读模式)
    2.只读(r和rb)操作

    复制代码
    # r模式
    f = open('H:/123.txt', mode='r',encoding='UTF-8') # 打开123文件,用只读的方式,编码格式是UTF-8
    centent = f.read()  # 读取文件
    print(centent)      # 输出内容
    f.close()           # 关闭文件
    
    # rb模式
    f = open('H:/123.txt', mode='rb' ) # 打开123文件,用只读字节的方式
    centent = f.read()  # 读取文件,会读取出来字节模式的
    print(centent)      # 输出内容.输出字节形式的
    f.close()           # 关闭文件
    复制代码

    绝对路径和相对路径:

      绝对路径:从根目录下一直到你那个文件的位置

      相对路径:根据你当前所在位置的路径

      ../ 返回上一层

    读取文件的方式:

    read():将文件中的全部内容全部读取出来,弊端:占内存,如果文件太大会崩溃

    read(n):读取几个字符,在rb模式下才是读取几个字节

    readline():一次读取一行,每次读取的数据后面都有一个 ,需要去除

    readlines():会将每一行形成一个元素,放到一个列表里

    最好使用for循环的方式打开

    读取完一定要f.close(),来关闭句柄

    写读文件的方式(w,wb):
    写的时候要注意,如果没有文件,则会创建文件,如果文件存在,则会删除文件内容,再写入新的内容

    write():写入内容,在写入内容的模式下,是无法读取的

    flush():刷新文件

    wb模式下,可以不指定打开文件的编码,但是在写入的时候必须将字符串,转换为UTF-8的bytes数据

    encode(编码):字符通过编码成为自节

    decode(编码):字节通过解码成为字符

    追加(a,ab)

    在追加模式下. 我们写入的内容会追加在文件的结尾

    读写模式(r+, r+b)

      对于读写模式. 必须是先读. 因为默认光标是在开头的.准备读取的. 当读完了之后再进行写入. 我们以后使用频率最多的模式就是r+

      需要先读在写

    写读(w+, w+b)

      先将所有的内容清空. 然后写入. 最后读取. 但是读取的内容是空的, 不常用

    追加读(a+)

      a+模式下, 不论先读还是后读. 都是读取不到数据的.

    其他操作:
      seek(n):seek(n) 光标移动到n位置, 注意, 移动的单位是byte. 所以如果是UTF-8的中文部分要是3的倍数. 通常我们使用seek都是移动到开头或者结尾. 移动到开头: seek(0) 移动到结尾: seek(0,2) seek的第二个参数表示的是从哪个位置进行偏移, 默认是0, 表示开头, 1表示当前位置, 2表示结尾

      tell():使用tell()可以帮助我们获取当前光标位置

      truncate() 截断文件

        在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显示的是多少. 再写入 或者操作文件的时候都是在结尾进行的操作. 所以如果想做截断操作. 记住了. 要先挪动光标. 挪动到你想要截断的位置. 然后再进行截断 关于truncate(n), 如果给出了n. 则从开头开头进行截断, 如果不给n, 则从当前位置截断. 后面的内容将会被删除

        另一种打开文件的方式:

      with open("娃娃", mode="r", encoding="utf-8") as f1:

        这个不需要关闭文件,使用方式和上面一样

  • 相关阅读:
    高级软件工程第一次作业
    《高级软件工程》团队第二次作业
    《高级软件工程》结对第二次作业
    《高级软件工程》团队第一次作业
    《高级软件工程》结对第一次作业
    《高级软件工程》第二次作业
    《高级软件工程》第一次作业
    冲刺NO.1
    冲刺No.4
    冲刺No.3
  • 原文地址:https://www.cnblogs.com/123zzy/p/9185130.html
Copyright © 2020-2023  润新知