• 文件处理


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

    文件操作语法:

    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.新建一个文件,将旧文件内容读取并处理后,追加写入新文件。缺点:占硬盘

    文件操作的其它功能:

  • 相关阅读:
    catalina_home与catalina_base
    log4j配置
    lsof
    定时任务-crontab
    access日志配置
    java常识
    mysql事务隔离级别与实现原理
    文件描述符设置
    gpio 預設值
    synchronous interrupt and asynchronous interrupt
  • 原文地址:https://www.cnblogs.com/jt925/p/10199866.html
Copyright © 2020-2023  润新知