• python与文件处理的相爱相杀


    一 介绍

    计算机系统=计算机硬件+操作系统+应用程序

    你用word写好了一篇文章,如何将这篇文章给永久保存起来,答案很简单就是将其保存到硬盘中。但是我们都知道word这个应用程序是无法对硬件进行直接操作的,必须借助操作系统。

    用一句话来说,应用程序使用操作系统对硬件进行操作,今天要来了解的文件就是操作系统为了应用程序能够更好的操作硬盘所虚拟出来的概念。

    简而言之:用户或者应用程序通过使用文件,将自己的数据永久保存下来

    我们无需知道文件与操作系统之间那些事儿,只要关注操作文件的流程。

    1. 打开文件
    2. 操作文件
    3. 关闭文件

    二.在python中文件处理流程

    #1. 打开文件
    f=open('a.txt','r',encoding='utf-8') #默认打开模式就为r
    
    #2.操作文件
    data=f.read()
    
    #3. 关闭文件
    f.close()

    三.注意

    1.操作完成后一定要关闭文件。(.close)

    2.编码问题

    f=open(...)是由操作系统打开文件,那么如果我们没有为open指定编码,那么打开文件的默认编码很明显是操作系统说了算了,操作系统会用自己的默认编码去打开文件,在windows下是gbk,在linux下是utf-8。

    简而言之:若要不乱码,文件以什么保存,以什么打开

    四.文件打开模式

    文件句柄=open('文件路径','模式',encoding='  ')

    #1. 打开文件的模式有(默认为文本模式):
    r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
    w,只写模式【不可读;不存在则创建;存在则清空内容】
    a, 之追加写模式【不可读;不存在则创建;存在则只追加内容】
    
    #2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)
    rb 
    wb
    ab
    注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码
    
    #3. 了解部分
    "+" 表示可以同时读写某个文件
    r+, 读写【可读,可写】
    w+,写读【可读,可写】
    a+, 写读【可读,可写】
    
    
    x, 只写模式【不可读;不存在则创建,存在则报错】
    x+ ,写读【可读,可写】
    xb

    五.文件操作方法

    #掌握
    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

    六.文件修改

    文件其实并没有修改一说,用word写一篇文章来说。我们将写好的文章保存硬盘中,现在我们需要“修改”这篇文章,首先应用程序通过操作系统将文件从硬盘导入到内存当中操作,操作完后,文件再从内存覆盖到硬盘里面。

  • 相关阅读:
    Kubernetes实战:高可用集群的搭建和部署
    华为云MVP程云:知识化转型,最终要赋能一线
    支持60+数据传输链路,华为云DRS链路商用大盘点
    关于单元测试的那些事儿,Mockito 都能帮你解决
    深入原生冰山安全体系,详解华为云安全服务如何构筑全栈安全
    云小课|ModelArts Pro 视觉套件:零代码构建视觉AI应用
    FLINK重点原理与机制:内存(1)task之间的数据传输
    FLINK重点原理与机制:内存(2)网络流控及反压机制剖析(一)
    FLINK重点原理与机制:状态(3)两阶段提交
    FLINK重点原理与机制:状态(2)Flink的检查点算法CHECKPOINT
  • 原文地址:https://www.cnblogs.com/shi-py-rengongzhineng/p/9398805.html
Copyright © 2020-2023  润新知