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

    2.5.2 文件操作

    1,文件流程控制

    1. 打开文件,得到文件句柄并赋值给一个变量。
    2. 通过句柄对文件进行操作。
    3. 关闭文件。
      注意:文件句柄包含文件的存储路径,文件名,文件内容,文件指针等等信息。

    2,基本操作

    • 实例一:
    f = open('lyrics') #打开文件
    first_line = f.readline()
    print('first line:',first_line) #读一行
    print('我是分隔线'.center(50,'-'))
    data = f.read()# 读取剩下的所有内容,文件大时不要用
    print(data) #打印文件
    f.close() #关闭文件
    

    3,打开文件的模式有

    • r,只读模式(默认)。
    • w,只写模式。【不可读;不存在则创建;存在则删除内容后修改;】
    • a,追加模式。【可读; 不存在则创建;存在则只追加内容;】

    "+" 表示可以同时读写某个文件

    • r+,可读写文件。【可读;可写;可追加】
    • w+,写读
    • a+,同a

    "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)

    • rU
    • r+U

    "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

    • rb 以二进制读模式打开以二进制读模式打开
    • wb 以二进制写模式打开以二进制写模式打开

    4,文件读取

    # f.readline f 一次将文件全部加载内存,适合度小文件
    # for line in f: print(line) 迭代循环一行行读,节约内存
    

    5,文件方法

    # 计算光标当前位置,按照字符位置来不是按照行数。
    f.tell()
    # 让文件指针指到指定位置
    f.seek(10)
    # 查看文件编码
    f.encoding()
    # 查看文件存在内存中的编码
    f.fileno()
    # 将内存中的文件信息刷新到磁盘,防止数据丢失
    f.flush()
    # 从文件开头截断到指定的位置
    f.truncate()
    # 关闭文件f
    f.close()
    
    • 实例二:
    # 进度条
    import sys,time
    for i in range(100):
        time.sleep(0.1)
        sys.stdout.write("#")
        sys.stdout.flush()
    

    6,使用with打开文件

    # 为了避免打开文件后忘记关闭,可以通过管理上下文,即:
    with open('log','r', encoding="utf-8") as f:
    with open('log1','r', encoding="utf-8") as f1,open('log1','r', encoding="utf-8") as f1:
    
  • 相关阅读:
    【NOIP2016提高A组8.12】奇袭
    【NOIP2016提高A组8.12】礼物
    tarjan算法
    【NOIP2016提高A组8.12】总结
    【NOIP2016提高A组8.11】自然数
    【NOIP2016提高A组8.12】通讯
    【NOIP2016提高A组8.11】种树
    【NOIP2016提高A组8.11】钱仓
    【NOIP2016提高组A组7.16】大鱼海棠
    【NOIP2012模拟8.20】Memory
  • 原文地址:https://www.cnblogs.com/kakarott/p/9536626.html
Copyright © 2011-2022 走看看