• 文件操作


    打开文件的模式

    # r模式只读模式,在这个模式下面不能往文件写内容否则报错
    f = open('a.txt', 'r', encoding='utf8')
    print(f.read())
    f.close()
    
    # w模式只写模式,在这个模式下面不能读内容否则报错
    # 这个模式下面有一点要特别注意,如果用w模式打开一个有内容的文件,文件的内容会被清空。一定要慎重!!!!
    f = open('a.txt', 'w', encoding='utf8')
    print(f.write('abc'))
    f.close()
    
    # a模式追加模式,在这个模式下面不能读取内容否则报错
    # 这个模式下面打开文件,不会清空文件内容,写入文件默认在最后添加
    f = open('a.txt', 'a', encoding='utf8')
    print(f.write('abc'))
    f.close()
    
    # ======================= 下面的模式需要跟rwa组合使用 =======================
    # b模式
    # 注意这个模式下面不能指定encoding,否则报错
    # 这个模式是能写入bytes类型的数据,不能写入文本
    f = open('a.txt', 'wb')
    f.write('abc'.encode('utf8'))
    f.close()
    # 读出的也是bytes类型
    f = open('a.txt', 'rb')
    f.read()
    f.close()
    
    # t模式(默认模式)
    # 这个模式是open的一个默认模式,只能读写字符类型,需要指定encoding
    f = open('a.txt', 'wt')
    f.write('abc')
    f.close()
    # 读出的也是字符类型
    f = open('a.txt', 'rt')
    f.read()
    f.close()
    
    # +模式
    # 这个模式给rwa模式添加他们没有的功能
    f = open('a.txt', 'w+')  # 赋予w读文件的功能
    f.close()
    f = open('a.txt', 'a+')  # 赋予a读文件的功能
    f.close()
    f = open('a.txt', 'r+')  # 赋予r写文件的功能
    f.close()

    指针操作

    # 获取指针位置
    f.tell()
    # 移动指针
    # seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的
    f.seek(3, 0)  # 以文件开头为对照,移动3个bytes
    f.seek(3, 1)  # 以指针当前位置为对照,移动3个bytes
    f.seek(3, 2)  # 以文件结尾为对照,移动3个bytes
    
    #
    # 2. truncate是截断文件
    f.truncate(n) # 如果传入n,保留文件起始位置开始到n的数据,其余的删除
    f.truncate() # 如果不传n,保留文件起始位置开始到指针所在位置,其余的删除

    内置方法

    #掌握
    f.read() #读取所有内容,光标移动到文件末尾
    f.readline() #读取一行内容,光标移动到第二行首部
    f.readlines() #读取每一行内容,存放于列表中
    
    f.write('1111
    222
    ') #针对文本模式的写,需要自己写换行符
    f.write('1111
    222
    '.encode('utf-8')) #针对b模式的写,需要自己写换行符
    f.writelines(['333
    ','444
    ']) #文件模式
    f.writelines([bytes('333
    ',encoding='utf-8'),'444
    '.encode('utf-8')]) #b模式
    
    #了解
    f.readable() #文件是否可读
    f.writable() #文件是否可读
    f.closed #文件是否关闭
    f.encoding #如果文件打开模式为b,则没有该属性
    f.flush() #立刻将文件内容从内存刷到硬盘
    f.name

      

  • 相关阅读:
    Java基础知识回顾
    设计模式简单回顾
    数据结构基础知识
    《More Effective C#》读书笔记
    《Effective C#》读书笔记
    《编程匠艺》读书笔记
    《Scrum实战》读书会作业01
    开始一段新的敏捷学习之旅 —— IT帮读书会第4期《Scrum实战》
    【译】别学框架,学架构
    AngularJS学习笔记(1)
  • 原文地址:https://www.cnblogs.com/wtil/p/13323746.html
Copyright © 2020-2023  润新知