zoukankan      html  css  js  c++  java
  • 第四章.文件操作

    4.1文件的基本操作

    data = open('路径',mode='模式',encoding='编码')
    data.read()
    data.write()
    data.close()

    4.1.1只读只写字符串

    • r:只读,默认模式,文件不存在就报错

    • w:只写,文件存在就覆盖,文件不存在就创建

    • a:只追加,文件存在不覆盖,只会在已存在的内容后面追加,文件不存在就创建。

    4.1.2可读可写字符串

    • r+:读:默认从0光标位置开始读,可通过seek函数调整光标位置

      写:从光标位置开始写,可通过seek函数调整光标位置(可能使文件被覆盖)

    • w+:写:写入时先清空文件

      读:默认光标位置永远位于写入的内容后面或者0位置,可通过seek函数调整光标

    • a+:读:默认光标位于最后,可通过seek函数调整光标位置

      写:永远位于文件最后

    4.1.3只读只写二进制

    • rb

    • wb

    • ab

    4.1.4可读可写二进制

    • r+b

    • w+b

    • a+b

    4.2操作

    4.2.1read

    • read(),全部读到内存

    • read(1)

      • 1表示一个字符

        data = open('a.txt',mode='r',encoding='utf-8')
        v = data.read(1)  #1表示一个字符
        data.close()
        print(v)
      • 1表示一个字节

        data = open('a.txt',mode='rb')
        v = data.read(1)  #1表示一个字节
        data.close()
        print(v)

    4.2.2write

    • write(字符串)

      data = open('a.txt',mode='w',encoding='utf-8')
      data.write('xxxxxxx')   #‘'XXXXXX'为一个字符串
      data.close()
    • write(二进制)

      data = open('a.txt',mode='wb')
      v = 'XXXXX'.encode("utf-8")#就是data.write(“xxxx”。encode(utf-8))
      data.write(v)  
      data.close()

    4.2.3seek

    seek为光标字节位置,无论是否带b,都按照字节处理

    obj = open('a.txt',mode='w',encoding='utf-8')
    obj.seek(3)
    data = obj.read()#就是将文件中内容读取到内存
    obj.close()
    print(data)
    obj = open('a.txt',mode='rb')
    obj.seek(3)
    data = obj.read()
    obj.close()
    print(data)

    4.2.4tell()

    获取光标当前所在字节位置

    obj = open('a.txt',mode='rb')
    # obj.seek(3) #跳转到指定字节位置
    obj.read()
    data = obj.tell()
    print(data)
    obj.close()

    4.2.5flush

    强制将内存中的数据写入到硬盘

    obj = open('a.txt',mode='w',encoding='utf-8')
    while True:
       val = input('请输入:')
       obj.write(val)
       obj.flush()
    obj.close()

    4.3关闭文件

    • 第一种打开方式

      obj = open('a.txt',mode='w',encoding='utf-8')
      obj.close()
    • 第二种打开方式

      with open('a.txt',mode='a',encoding='utf-8') as v:
      data = v.read()
      #缩进中的代码执行完毕后,自动关闭文件

    文件内容的修改

    with open('a.txt',mode='r',encoding='utf-8') as f1:
    data = f1.read()
       new_data = data.replace('飞洒','666')
    with open('a.txt',mode='w',encoding='utf-8') as f1:
       data = f1.write(new_data)

    大文件的修改

    f1 = open('a.txt',mode='r',encoding='utf-8')
    f2 = open('b.txt',mode='w',encoding='utf-8')
    for line in f1:
       new_line = line.replace('阿斯','死啊')
       f2.write(new_line)
    f1.close()
    f2.close()
    with open('a.txt',mode='r',encoding='utf-8') as f1, open('b.txt',mode='w',encoding='utf-8') as f2:
       for line in f1:
           new_line = line.replace('阿斯', '死啊')
           f2.write(new_line)
  • 相关阅读:
    vue init webpack projectName命令运行报错 解决方法
    DIV实际高度小于设置高度的问题
    openlayers 地图要素的多种高亮方式 Demo(可直接运行)
    加载wkt到地图 Demo (可直接运行)
    openlayers 框选地图得到选框范围(坐标)Demo(可直接运行)
    element+vue可远程搜索可懒加载的下拉框组件
    Android-使用约束布局(ConstraintLayout)构建灵活的UI【译】
    Mysql explain 执行计划详解(转)
    Managing Hierarchical Data in MySQL(邻接表模型)[转载]
    无限极分类原理与实现(转)
  • 原文地址:https://www.cnblogs.com/lilinyuan5474/p/10791758.html
Copyright © 2011-2022 走看看