zoukankan      html  css  js  c++  java
  • 文件的操作

    一 只读操作(r,rb)

    f =open("小娃娃.txt",mode ="r+", encoding="utf-8")
    content =f.read()
    f.write('哈哈哈')
    print(content)
    f.flush()
    f.close()
    
    f =open("哈哈哈.txt",mode="r",encoding="utf-8")
    content =f.read()
    print(content)
    f.close()
    

     需要注意encoding表示编码集,根据文件的实际保存编码进行获取数据

     rb 读取出来的数据是bytes类型,在rb模式下,不能选择encoding字符集

    f =open("哈哈哈.txt",mode="rb")
    content=f.read()
    print(content)
    f.close()
    

     rb 的作用:在读取非文本文件的时候,比如视频,图像就需要rb模式,因为这种数据是无法显示出来的

    1 绝对路径:从磁盘的根目录开始一直到文件名

    2 相对路径:同一个文件夹下的文件,相对于当前这个程序所在的文件夹而言,如果在同一个文件夹中,则相对路径就是这个文件名,如果在上一层文件夹,则要.../

    读取文件的方法:

    1 read()将文件中的内容全部读取出来,弊端:占内存

    f =open("..哈哈哈.txt",mode="r",encoding(utf-8)
    content=f.read()
    print(content)

    2 read(n)读取n个字符,需要注意的是,如果再次读取,那么会在当前位置继续去读而不是从头读,如果使用的是rb模式,那么读出来的是n个字节

    f =open("哈哈哈.txt",mode="r",encoding="utf-8)
    content =f.read(3)
    print(content)
    

     3 readline()一次读取一行数据,注意:readline()结尾,注意每次读取出来的数据都会有一个 所以,需要我们使用strip()方法来去掉 或空格

    f =open("..哈哈哈.txt",mode="r",encoding="utf-8"
    content=f.readline()
    content2 =f.readline()
    content3=f.readline()
    content4=f.readline()
    print(content)
    print(content2)
    print(content3)
    print(content4)
    

    4 readlines()将每行形成一个元素,放到一个列表中.将所有的内容都读取出来

    f=open("哈哈哈.txt",mode="r",encoding="utf-8")
    lst=f.readlines()
    print(lst)
    for line in lst:
    print(line.strip())
    

     5 循环读取 这种方式是组好的,每次读取一行内容

    f=open("哈哈哈.txt",mode="r",encoding="utf-8")
    for line in f:
    print(line.strip())
    

     三 写模式(w,wb)

    写的时候注意 如果没有文件 则会创建文件 如果文件存在,则会将原来的内容删除 在写入新内容

    f =open("小娃娃.txt",mode="w",encoding="utf-8")
    f.write("金毛狮王")
    f.flush()   #刷新
    f.close()
    

     wb 模式下 可以不指定打开文件的编码 但是在写文件的时候必须将字符串转换成utf-8

    f=open("小娃娃.txt",mode ="wb")
    f.write("金毛丝王",encoding("utf-8")
    f.flush()
    f.close()
    

     四 追加(a,ab)

    在追加的模式下,我们写入的内容会追加到文件的末尾

    f =open("小娃娃.txt",mode ="a",encoding="utf-8:)
    f.write("哈哈哈")
    f.flush()
    f.close()
    

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

    对于读写文件 必须是先读 因为光标默认的是在开头,准备读取的,当读完之后在进行写入,使用最高的是R+模式

    六 写读(w+,wb+)

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

    七 追加读(a+)

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

    1seek(n)光标移动到n位置 注意 移动的单位是byte,所以如果是utf-8的中文部分要是3的倍数

  • 相关阅读:
    商人的诀窍
    商人小鑫
    懒虫小鑫
    悼念512汶川大地震遇难同胞
    最少拦截系统
    活动选择问题
    删数问题
    常用排序算法的时间和空间复杂度总结
    一些博主
    C中自己的memcpy
  • 原文地址:https://www.cnblogs.com/mlhz/p/9439760.html
Copyright © 2011-2022 走看看