• 文件操作其他方法


    1、文件模式
    x模式(控制文件操作的模式)-》了解
    x, 只写模式【不可读;不存在则创建,存在则报错】

    b模式补充(控制文件读写内容的模式)
    t:
    1、读写都是以字符串(unicode)为单位
    2、只能针对文本文件
    3、必须指定字符编码,即必须指定encoding参数
    b:binary模式(二进制模式)
    1、读写都是以bytes为单位
    2、可以针对所有文件
    3、一定不能指定字符编码,即一定不能指定encoding参数

    1、在操作纯文本文件方面t模式帮我们省去了编码与解码的环节,b模式则需要手动编码与解码,所以此时t模式更为方便
    2、针对非文本文件(如图片、视频、音频等)只能使用b模式, t模式只能读文本文件

    bytes类型转换
    bytes()
    如果是纯英文字符,可以直接加前缀b得到bytes类型
    2、文件的操作的其他方法
    readline:一次读一行
    readlines

    f.read()与f.readlines()都是将内容一次性读入内存,如果内容过大会导致内存溢出,若还想将内容全读入内存

    f.writelines() 方法用于向文件中写入一序列的字符串。这一序列字符串可以是由迭代对象产生的,如一个字符串列表。换行需要制定换行符

    f.flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
    一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。

    f.readable() 文件是否可读

    f.writable() 文件是否可写

    f.encoding 文件的编码格式

    f.name 文件名称

    f.closed 文件是否关闭
    案例:
    # 一:读相关操作
    # 1、readline:一次读一行
    # with open(r'g.txt',mode='rt',encoding='utf-8') as f:
    # # res1=f.readline()
    # # res2=f.readline()
    # # print(res2)
    #
    # while True:
    # line=f.readline()
    # if len(line) == 0:
    # break
    # print(line)

    # 2、readlines:
    # with open(r'g.txt',mode='rt',encoding='utf-8') as f:
    # res=f.readlines()
    # print(res)

    # 强调:
    # f.read()与f.readlines()都是将内容一次性读入内存,如果内容过大会导致内存溢出,若还想将内容全读入内存,


    # 二:写相关操作
    # f.writelines():
    # with open('h.txt',mode='wt',encoding='utf-8') as f:
    # # f.write('1111 222 3333 ')
    #
    # # l=['11111 ','2222','3333',4444]
    # l=['11111 ','2222','3333']
    # # for line in l:
    # # f.write(line)
    # f.writelines(l)


    # with open('h.txt', mode='wb') as f:
    # # l = [
    # # '1111aaa1 '.encode('utf-8'),
    # # '222bb2'.encode('utf-8'),
    # # '33eee33'.encode('utf-8')
    # # ]
    #
    # # 补充1:如果是纯英文字符,可以直接加前缀b得到bytes类型
    # # l = [
    # # b'1111aaa1 ',
    # # b'222bb2',
    # # b'33eee33'
    # # ]
    #
    # # 补充2:'上'.encode('utf-8') 等同于bytes('上',encoding='utf-8')
    # l = [
    # bytes('上啊',encoding='utf-8'),
    # bytes('冲呀',encoding='utf-8'),
    # bytes('小垃圾们',encoding='utf-8'),
    # ]
    # f.writelines(l)


    # 3、flush:方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
    # 一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。
    # with open('h.txt', mode='wt',encoding='utf-8') as f:
    # f.write('哈')
    # # f.flush()


    # 4、了解
    with open('a.txt', mode='wt',encoding='utf-8') as f:
    print(f.readable())
    print(f.writable())
    print(f.encoding)
    print(f.name)

    print(f.closed)
  • 相关阅读:
    随机数生成
    C#根据流下载文件
    C# 改变Windows中服务的登录身份 (账户名和密码)
    SqlServer查看数据库信息及服务器级、数据库级、数据库独立 用户权限
    C# 两个List<T>(T是类)使用Contains比较元素的方法
    你真正了解public、internal、protected、private吗?不妨幽默一些
    【WCF Restful】Post传参示范
    VMware虚拟机可与Win10物理机互ping并可访问互联网的设置方法
    服务器Oracle数据库配置与客户端访问数据库的一系列必要设置
    Winform ListBox输出信息并自动滚动至底部
  • 原文地址:https://www.cnblogs.com/h1227/p/12505025.html
Copyright © 2020-2023  润新知