美文网首页
python入门 第九天 文件操作

python入门 第九天 文件操作

作者: xinmin | 来源:发表于2018-08-21 22:04 被阅读0次
  • 文件操作
    • open 打开文件
    # open(文件名, 模式, 编码)
    f = open('haha.log ', "r") #  默认是只读模式 r
    data = f.read()
    f.close()
    print(data)
    # 基本的打开方式(可加编码方式)
    # 1. 只读:r (不写时默认)
    f = open('haha.log ', "r")
    # 2. 只写:w 文件存在时,把文件清空重写,不存在时创建,不可读
    f = open('haha.log ', "w")
    f.write("123")
    f.close()
    # 3. 只写:x 文件存在报错,不存在创建,不可读(python3)
    # 4. 追加:a 文件存在追加内容,不存在创建,不可读
    f = open("haha.log", "a")
    f.write("666")
    f.close()
    # 字节的方式打开(不用加编码方式)
    # 1. 只读:rb
    f = open("haha.log", "rb")
    data = f.read()
    f.close()
    print(data)
    # 2. 只写:wb
    f = open("haha.log", "wb")
    f.write(bytes("中文", encoding="utf-8"))
    f.close()
    # 常用 r/w/x/a =====> str
    # rb/wb/xb/ab ======> bytes
    # r+:读写
    f = open("haha.log", "r+", encoding="utf-8")
    data = f.read() # 不加参数,默认从指针0读到末尾
    print(type(data), data) # <class 'str'> 中文
    f.write("中国人") # 在末尾追加,指针到最后了
    data = f.read() # 继续读,后面就为空了
    f.close()
    # w+:写读,先清空,读在写之后就可以读了
    # 先清空,之后写的才能读,写--->指针到最后
    f = open("haha.log", "w+", encoding="utf-8")
    f.write("张三")
    f.seek(0) # 写过后指针到最后了,seek()调整指针
    data = f.read()
    f.close()
    print(data)
    # a+:打开的同时,将指针一到最后
    # 写时,追加,放在最后
    f = open("haha.log", "a+", encoding="utf-8")
    data = f.read()
    f.seek(0)
    print(data)
    
  • 总结
  • f.tell():获取指针的位置
  • f.seek():调整指针的位置
  • f.write("xxxx"): 写
  • f.read("xxxx"): 读
  • 共有的特性:seek,读取
  • flush():刷新缓冲区数据到硬盘
  • readline():仅读取一行
  • truncate():截取前面的内容(依赖于指针)
    # 一行一行的读,不费内存
    f = open("haha.log", "r", encoding="utf-8")
    for line in f:
        print(line)
    # 用with不用close了
    with open("haha.log", "r") as f:
        f.read()
    
  • python2.7后with支持同时打开多个文件
    # 节约内存的方式把obj1文件写入obj2文件
    with open('log1', 'r') as obj1, open('log2', 'w') as obj2:
        for line in obj1:
            obj2.write(line) 
    
  • 补充
    • r+,读写:读--->从0开始读取 写---->如果先读;就在最后追加,主动seek,写从当前指针向后写
    • a+,追加:读--->最后位置读取 写-----> 最后追加,主动seek,还是最后追加

相关文章

网友评论

      本文标题:python入门 第九天 文件操作

      本文链接:https://www.haomeiwen.com/subject/utrriftx.html