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

    文件操作的其它功能:

  • 相关阅读:
    http://blog.csdn.net/sinat_33950284/article/details/50646622
    http://edu.csdn.net/course/detail/2798?ref=blog&loc=0
    微服务架构的分布式事务解决方案
    http://www.cnblogs.com/chenpi/p/5999707.html
    http://blog.csdn.net/hejingyuan6/article/details/47403299
    https://www.oschina.net/p/goshop2
    https://github.com/SuperMan42/MVP
    spring mvc
    http://www.iyaxi.com/2015-11-17/732.html
    场景测试
  • 原文地址:https://www.cnblogs.com/jt925/p/10199866.html
Copyright © 2011-2022 走看看