zoukankan      html  css  js  c++  java
  • 文件处理

    文件操作分为读、写、修改

    文件操作语法:

    f = open(file='文件路劲',mode='操作模式',encoding='以何种编码打开文件')
    data = f.read() # 对文件进行操作
    f.close() # 操作完毕后,关闭文件

    文本只读模式:

    f = open(file='test.txt',mode='r',encoding='utf-8')
    data = f.read() # 读文件的方法
    print(data)
    f.close()

    二进制只读模式:以什么编码格式存的就已什么格式读。使用场景:文本远程传输、打开非文本文件等

    f = open(file='test.txt',mode='rb')
    data = f.read() # 读文件的方法
    print(data)
    f.close()

    编码格式检测的模块:

    import chardet
    f = open(file='test.txt',mode='rb')
    data = f.read()
    f.close()

    result = chardet.detect(data)
    print(result)
    打印结果分析:
    {'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}   #encoding:编码格式,confidence:正确率,language:什么语言

    文本只写模式:清空再写,所以一旦使用旧数据就找不回来了,所以要慎重使用

    f = open(file='test.txt',mode='w',encoding='utf-8')
    data = f.write()# 写入文件的方法,返回写入的字符数
    print(data)
    f.close()

    二进制只写模式:以什么编码格式存。使用场景:文本、文件的写入等

    f = open(file='test2.txt',mode='wb')
    data = f.write('感觉人生已经到达了高潮!'.encode('utf8')) # 返回字节数
    f.close()
    print(data)

    以追加模式写入:

    f = open(file='test2.txt',mode='a',encoding='utf8')
    data = f.write('感觉人生已经到达了高潮2!')
    f.close()
    print(data)

    以二进制模式追加写入:

    f = open(file='test2.txt',mode='ab')
    data = f.write('感觉人生已经到达了高潮3!'.encode('utf8'))
    f.close()
    print(data)

    以读写模式打开:先读再写

    f = open(file='test2.txt',mode='r+',encoding='utf8')
    print(f.read())
    f.write('感觉人生已经到达了高潮4a!')
    print(f.read())
    f.close()

    以写读模式打开:以先写在读的模式打开,所以会写清空文件内容

    f = open(file='test2.txt',mode='w+',encoding='utf8')
    print('old:',f.read())
    f.write('感觉人生已经到达了高潮4a!')
    print('new:',f.read())
    f.close()

    文件修改:

    由于硬盘的物理原因,无法直接在硬盘上友好的修改数据(强行修改可能会导致字节被覆盖,使得数据无法被识别)。
    因此,一般文件修改有两种模式:
    1.直接读到内存,在内存中修改完后,重新写回文件。缺点:占内存
    2.新建一个文件,将旧文件内容读取并处理后,追加写入新文件。缺点:占硬盘

    文件操作的其它功能:

  • 相关阅读:
    1006. 求和游戏
    1004. 西西弗斯式的命运
    1024. 排序
    1005. 数独
    kafka的基本操作
    kafka安装
    spring boot 使用redis 及redis工具类
    ArrayDeque类的使用详解
    设计模式随笔之——工厂方法模式
    转:Android随笔之——使用Root权限实现后台模拟全局按键、触屏事件方法(类似按键精灵)
  • 原文地址:https://www.cnblogs.com/jt925/p/10199866.html
Copyright © 2011-2022 走看看