欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

day08 文件操作

程序员文章站 2022-03-16 23:25:31
1. 文件操作 open() 文件句柄 open()打开一个文件, 获取的是文件句柄 read() #读取全部内容 read(n)#读取前n个字符 readline()#读取一行 且读取出来末尾都有\n readlines()#读取全部 每一⾏形成一个元素并放到列表 注意: 读取完的文件句柄一定要关 ......

    1. 文件操作 open() 文件句柄

        open()打开一个文件, 获取的是文件句柄

        read() #读取全部内容

          read(n)#读取前n个字符

        readline()#读取一行   且读取出来末尾都有\n

        readlines()#读取全部 每一⾏形成一个元素并放到列表

注意: 读取完的文件句柄一定要关闭 f.close() 

        write()   如果没有⽂件. 则会创建文件, 如果文件存在. 则将原件中原来的内容删除, 再写入新内容

 

   文件句柄是一个可迭代对象

        for line in f: 遍历文件中的内容

 

        路径的问题:

    \n \t 转义字符。 有固定的含义的。 推荐用r

            1. 绝对路径

                从磁盘根目录寻找

            2. 相对路径

                从当前程序运行的文件夹内寻找

    2. 文件操作的相关模式mode

        r: 只读

        w: 只写

        a: 追加

        r+:读写

        w+:写读

        a+:追加读   a+模式下, 不论先读还是后读. 都是读取不到数据的.

              只要是a或者ab, a+ 都是在文件的末尾写入. 不论光标在任何位置.

        非文本文件(b是bytes)

wb模式下. 可以不指定打开文件的编码. 但是在写文件的时候必须将字符串转化成utf-8的bytes数据

        rb

        wb

        ab

        r+b

        w+b

        a+b

深坑请注意: 在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显示的是多少. 再写入或者操作文件的时候都是在结尾进行的操作.

    3. 相关操作

        1. seek()移动光标(重点)——seek(n) 光标移动到n位置, 注意, 移动的单位是byte. 所以如果是utf-8的中文部分要是3的倍数.

seek的第二个参数表⽰的是从哪个位置进⾏偏移, 默认是0, 表⽰开头, 1表⽰当前位置, 2表⽰结尾

         seek(0) 开头

          seek(0,2) 移动到末尾

        2. tell() 获取光标所在的位置

        3. truncate() 截断文件

 

    4. 文件修改

        with open(xxx) as 句柄, \

            open(xxxxx)as xxx

        不用手动关闭文件句柄

 

        文件修改的步骤

            1. 从原文件中读取数据。

            2. 写入到副本文件中

            3. 删除源文件

            4. 把副本重命名成原文件

        import os

        os.remove()

        os.rename()