• 11.文件操作


    1.文件

    什么是文件

    文件是操作系统提供的虚拟单位,有了文件我们可以读取数据。

    为什么要有文件

    内存无法永久保存数据,需要把文件中储存的数据保存在硬盘中,操作系统就可以实现对硬件的操作。

    如何使用文件

    1. 打开文件
    2. 读写数据
    3. 保存
    4. 关闭文件

    2.python中如何读取文件呢

    Python中可以使用open()方法打开某个具体的文件,只要在open()方法内写入文件路径,这里又分相对路径和绝对路径。

    f = open(r'C:Users
    ickcDesktop	est.txt',encoding='gbk')  相当于你打开的文件
    print(f.read())  # 一次性读取所有的内容
    print(1,f.read())
    del f  # 只删除了变量名,但是文件对于操作系统来讲,还是打开状态的
    这里我们使用f.close() ,这样不仅删除了变量名f,并且也关闭了文件,这个时候文件对于操作系统来讲是关闭状态的
    

    相对路径和绝对路径

    绝对路径,比如在Windows系统下绝对路径从C盘或D盘开始写入一个完整的路径。

    相对路径,相对于当前执行文件所在的文件夹开始找。

    打开文件之后,文件占用了内存,相当于使用文本编辑器打开了一个文件。而我们操控文件只是为了读和写,因此打开文件并不是目的,读和写才是目的,所以最常见的是读和写模式read和write,还有一个常用的模式是append,a模式。

    read,只读模式,只能读不能写,文件不存在时报错。f.read()读取文件指针会跑到文件的末端,如果再一次读取,读取的将是空格。由于f.read()一次性读取文件的所有内容,如果文件非常大的话,可能会造成内存爆掉,即电脑卡死。因此可以使用f.readline()/f.readlines()读取文件内容。

    w: 只能写,不能读,文件存在的时候回清空文件后再写入内容;文件不存在时会创建文件后写入内容

    a: 追加模式。当文件存在,则会在文件的末端写入内容;文件不存在的时,会创建文件后写入内容。

    而文件读写内容的格式有两种

    • t模式为text文本模式
    • b模式为bytes二进制模式

    with open()

    ​ 前面我们所使用open()方法操作文件,但是open打开文件后我们还需要手动释放文件对操作系统的占用。但是其实我们可以更方便的打开文件,即Python提供的上下文管理工具——with open(),它可以使用逗号分隔,一次性打开多个文件

    with open(文件路径,打开模式(rt/wt/at/rb/wb/ab),编码格式) as 变量名:
        # 变量名.read/write
    with open('test.txt','r',encoding='utf8') as fr:
        data = fr.read()
        print(data)
    

    3.文件的高级应用

    • r+t: 可读、可写
    • w+t: 可写、可读
    • a+t: 可追加、可读

    ​ 如果我们需要在文件内容中间的某一行增加内容,使用基础模式很难实现,因此我们需要对文件内的指针进行移动。

    seek(offset,whence): offset代表文件指针的偏移量,单位是字节

    tell()告诉你光标当前的位置

    read(n): n代表的是字符个数,读取光标后的n个字符

    truncate(n):如果它有参数,则光标会跳到指定字节数后,然后把后面的文件全部清空

    4.修改文件

    ​ 硬盘上从来没有修改一说,硬盘上只有覆盖,即新内容覆盖旧内容。

    ​ 若要修改文件,首先将硬盘存放的该文件内容全部加载到内存,在内存中进行修改,修改完毕后存入新的文件,通过os模块删去旧的文件,把新文件改成旧文件名再由内存覆盖到硬盘便完成了替换,如果文件过大可以一行一行的读入内存进行修改,修改完毕后写入新文件,最后用新文件覆盖源文件。这样的好处就是可以同时对源文件进行修改。

  • 相关阅读:
    PHP数字签名算法
    PHP日期相关类
    浏览器常见bug及解决办法
    PHPer整理的前端开发知识
    小程序之轮播图(2020.4.13更新)
    Android APK反编译 apktool使用教程
    秒懂-单列布局水平居中布局
    一句话搞定-phpStudy安装yaf扩展
    Git的简单安装
    人人都能读懂的css3 3d小demo
  • 原文地址:https://www.cnblogs.com/yellowcloud/p/10940436.html
Copyright © 2020-2023  润新知