zoukankan      html  css  js  c++  java
  • Day 08 文件操作模式,文件复制,游标

    with open:将文件的释放交给with管理

    with open('文件', '模式', encoding='utf-8') as f:
       # 操作
       pass

     

    a模式:追加写入

    # temp.txt
    # 111222333

    with open('temp.txt', 'a', encoding='utf-8') as f:
       f.write('new msg')
       
    # 结果:111222333new msg

    文件的复制:就是先读再写

    # 文本类型文件的复制
    r = open('source.txt', 'r', encoding='utf-8')
    w = open('target.txt', 'w', encoding='utf-8')
    for line in r:  # 遍历就是一行一行读 取读文件的流
       w.write(line)
       w.flush()  # 将写入到内存中的数据刷新到硬盘中
    w.close()
    r.close()

    # 用with open语法如何处理?
    # r+: 不会创建文件的可读可写 | w+:创建清空文件的可读可写 | a+:创建不清空文件(追加)的可读可写
    with open('source.txt', 'r', encoding='utf-8') as f1:
       with open('target.txt', 'a+', encoding='utf-8') as f2:
           for line in f1:
               f2.write(line)


    # 如果复制非文本类型的数据文件?
    # 从模式采用b模式,不需要关心编码问题
    with open('source.mp4', 'rb') as f1:
       with open('target.mp4', 'wb+') as f2:  # rb+ | wb | wb+ | ab | ab+
           for line in f1:
               f2.write(line)

     

    模式汇总

    *****

    '''
    r: 读
    w: 写(无创建,有清空)
    a: 追加(有创建的功能)

    t: 文本操作(默认模式) r=>rt w=>wt a=>at
    b: 非文本文件必须采用二进制模式来处理
    +: 可读可写

    r+: 不会创建文件的可读可写 | w+:创建清空文件的可读可写 | a+:创建不清空文件(追加)的可读可写
    rb: 二进制读 | wb:创建清空文件的二进制写 | ab: 创建不清空文件(追加)的二进制写
    rb+ | wb+ | ab+
    '''

     

    游标:必须在b模式下操作,seek中偏移的是字节

    '''
    百度网盘 - 秒传
    '''
    '''
    1. 如何使用游标:游标的相关方法
    2. 游标相关的读写操作
    3. 根据游标在大文件中取出多个指定位置的部分字节内容
    '''

    '''
    seek(偏移量, 偏移位置)
    偏移位置:
    0 -- 文件开头
    1 -- 当前位置
    2 -- 文件末尾
    '''

     

     

     

     

  • 相关阅读:
    Effective Java 的笔记(二)
    设计模式系列 装饰模式
    一道多线程题目的解决方案
    Effective Java 的笔记(一)
    Java 并发编程实践
    【转】微博技术底层架构的实现
    Head First JavaScript 笔记
    JVM 学习笔记 类的加载和执行
    背包问题
    Oracle 序列号通过定时任务重置
  • 原文地址:https://www.cnblogs.com/zhengyuli/p/10609585.html
Copyright © 2011-2022 走看看