编辑
2025-03-30
python
0

目录

一、文件的编码
二、文件的读取
三、文件的写入
四、文件的追加
五、文件操作综合案例
六、总结

Python文件操作

Python第八课,本文将讲述Python的文件操作

一、文件的编码

  1. 什么是编码?

    • 编码是一套规则,用于将文本内容转换为计算机能够识别的二进制数据(0和1),反之亦然。
    • 常见编码方式包括:
      • UTF-8:全球通用,支持多语言。
      • GBKBig5:主要用于中文,分别支持简体和繁体中文。
  2. 为什么需要编码?

    • 数据存储:计算机只能处理二进制数据,编码将文本转换为二进制,方便存储。
    • 兼容性:确保文件在不同系统和程序中正确显示。
  3. 如何查看文件编码?

    • 使用文本编辑器(如Windows记事本)打开文件,选择“另存为”,可以看到文件的当前编码。
  4. Python中默认编码

    • Python 3默认使用UTF-8编码。
    • 如果文件编码与此不符,可能会导致乱码。

二、文件的读取

  1. 打开文件

    python
    f = open('文件路径', 'r', encoding='UTF-8')
    • 'r':只读模式。
    • encoding='UTF-8':指定文件的编码格式。
  2. 读取文件内容

    • read()

      python
      content = f.read() # 读取整个文件内容 print(content)
    • readline()

      python
      line = f.readline() # 读取一行内容 print(line) # 输出第一行 line = f.readline() # 继续读取第二行
    • readlines()

      python
      lines = f.readlines() # 读取所有行,返回列表 for line in lines: print(line.strip()) # 去除换行符并打印每行内容
  3. 自动关闭文件的with语句

    python
    with open('文件路径', 'r', encoding='UTF-8') as f: content = f.read() print(content)
    • 优点:无需手动调用close(),文件会在代码块结束后自动关闭。
  4. 注意事项

    • 文件读取后,必须确保关闭文件,避免占用资源。

三、文件的写入

  1. 写入文件

    python
    with open('output.txt', 'w', encoding='UTF-8') as f: f.write('Hello, World!\n') # 写入内容并换行 f.write('Python文件操作演示。')
    • 'w':写入模式,会覆盖原有内容。
  2. 刷新缓冲区

    • 使用flush()确保内容立即写入硬盘:

      python
      f.write('内容') f.flush()
  3. close()的作用

    • 关闭文件时,close()会自动调用flush(),将缓冲区内容写入硬盘。

四、文件的追加

  1. 追加模式

    python
    with open('append.txt', 'a', encoding='UTF-8') as f: f.write('今天天气真好!\n')
    • 'a':追加模式,内容会添加到文件末尾。
  2. 注意事项

    • 可以通过换行符\n控制内容的格式。

五、文件操作综合案例

案例1:单词计数

  1. 创建文件 创建一个名为word.txt的文件,内容如下:

    itheima itcast python itheima python itcast beijing shanghai itheima shenzhen guangzhou itheima wuhan hangzhou itheima zhengzhou bigdata itheima
  2. 代码实现

    python
    with open('word.txt', 'r', encoding='UTF-8') as f: content = f.read() count = content.count('itheima') print(f'itheima出现了 {count} 次。')

案例2:文件备份(筛选有效数据)

  1. 需求:

    • 读取账单文件bill.txt,筛选出标记为“正式”的数据行,并写入备份文件bill.txt.bak

    • 内容如下:

      name,date,money,type,remarks 周杰轮,2022-01-01,100000,消费,正式 周杰轮,2022-01-02,300000,收入,正式 周杰轮,2022-01-03,100000,消费,测试 林俊节,2022-01-01,300000,收入,正式 ...
  2. 代码实现

    python
    # 读取原始文件 with open('bill.txt', 'r', encoding='UTF-8') as f_read: lines = f_read.readlines() # 写入备份文件 with open('bill.txt.bak', 'w', encoding='UTF-8') as f_write: for line in lines: if '测试' in line: continue # 跳过测试数据 f_write.write(line)
  3. 步骤说明

    • 打开原始文件:以只读模式读取所有行。
    • 筛选数据:遍历每行,检查是否包含“测试”,如果是则跳过。
    • 写入备份文件:将非测试行写入备份文件。

六、总结

  1. 核心知识点

    • 文件编码:确保读写文件时使用正确的编码格式。
    • 文件读取:掌握read()readline()readlines()的使用。
    • 文件写入:了解write()flush()的区别及用途。
    • 文件追加:使用'a'模式,保留原有内容。
    • 综合案例:实际应用中,文件操作常用于数据处理和备份。
  2. 注意事项

    • 始终使用with语句管理文件,确保资源释放。
    • 处理多语言文件时,默认使用UTF-8编码。
  3. 练习建议

    • 自行创建文件并进行读写操作。
    • 实现更多文件操作综合案例,如数据统计、日志处理等。
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dageling003

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!