python 基础:文件处理

文件处理

f = open('文件名的路径', '打开的模式', encoding='字符编码')
        f.close()

        # 文件的上下文管理: with    ,   flask框架的上下文管理(后期学习)
        with open('文件名的路径', '打开的模式', encoding='字符编码') as f:
            # 内部帮你执行f.close()

什么是文件

操作系统提供的虚拟概念,用来存储信息的

操作文件的流程

  1. 打开文件 --》 open
  2. 修改文件 --》 write/read
  3. 保存文件 --》 flush
  4. 关闭文件 --》 close

文件打开文件的三种模式

  1. r --》只读
  2. w --》清空写入,创建新文件
  3. a --》追加写入,创建新文件 把光标移动到文件尾部

文件打开的两种方式

两种方式一般不单独使用

  1. t 文本模式
  2. b 二进制模式,一般用于音频/图片/视频

绝对路径和相对路径

绝对路径:

从盘符开始

相对路径:

相对于当前执行文件的文件夹下的所有文件

with管理文件上下文

跳出with缩进外,会自动关闭文件。可以一次性打开多个文件

文件的高级应用

新的打开文件的模式

  1. r+,覆盖光标后(文件头)的内容
  2. w+,w清空文件,读的功能失去了意义
  3. a+,a让光标移到文件尾,你读也读不出来

如果真要即写又读,打开两次文件

光标移动的应用

  1. read,以字符为单位,读取n个字符,默认读取全部

以下三个方法以字节为单位

  1. seek:移动光标:0表示文件头;1表示当前位置;2表示文件末尾
  2. tell:告诉你当前位置
  3. truncate:截断处理,truncate(0),清空文件

打开文件取值的优化方式:

- f.read():
                直接将文件中所有数据一次性取出。
                缺点:
                    内存容易溢出。

            - for循环f句柄操作:
                # 通过for循环,将每一行取出,保证不会内存溢出
                for line in f:
                    print(line)

            - f.readline(): (了解)
                读取一行,光标移动到第二行。

文件的修改

文件没有插入,只有覆盖一说

with open('test.txt','r',encoding='utf8') as fr, open('test_swap.txt','w',encoding='utf8') as fw:
    data = fr.read()
    # 做修改
    fw.write(data)
    
import os

os.remove('test.txt')
os.rename('test_swap.txt','test.txt')

pyth

你可能感兴趣的:(python 基础:文件处理)