【Python基础教程】第七章:文件操作与IO

摘要:本文围绕Python中的文件操作与IO展开,深入探讨文本与二进制文件的处理方式。详细介绍了with open()语句进行安全读写文件的机制,以及json模块在处理配置文件和csv模块在读写表格数据方面的应用。通过日志分析程序案例,展示如何运用文件操作技能统计访问量前10的IP。结合概念讲解、代码示例、练习题及答案,为读者提供全面且深入的Python文件操作知识体系,助力读者提升实际编程能力。


在这里插入图片描述

文章目录


【Python基础教程】第七章:文件操作与IO


关键词:Python;文件操作;IO;文本文件;二进制文件;with open()json模块;csv模块;日志分析

一、引言

在Python编程中,文件操作与IO(输入/输出)是至关重要的技能。无论是读取配置文件、处理数据文件,还是将程序结果保存到文件中,都离不开文件操作。Python提供了丰富的文件操作功能,能够处理文本文件和二进制文件,满足不同场景下的数据读写需求。本章将详细介绍Python中文件操作的基本概念、常用方法和模块,通过实际案例和练习题帮助读者掌握文件操作的核心技能。

二、文本与二进制文件处理概述

2.1 文本文件与二进制文件的区别

  • 文本文件:以字符形式存储数据,通常使用特定的字符编码(如UTF - 8、GBK等)将字符转换为字节序列进行存储。文本文件可以使用文本编辑器直接打开查看和编辑,内容可读性强。常见的文本文件格式有.txt.py.html等。
  • 二进制文件:以二进制形式存储数据,不依赖于特定的字符编码。二进制文件包含的数据可以是图像、音频、视频等,无法直接使用文本编辑器查看,需要特定的程序进行解析和处理。常见的二进制文件格式有.jpg.mp3.exe等。

2.2 文件操作的基本流程

在Python中,文件操作的基本流程通常包括以下几个步骤:

  1. 打开文件:使用open()函数打开指定的文件,并指定打开模式(如只读、写入、追加等)。
  2. 读写文件:根据打开模式,对文件进行读取或写入操作。
  3. 关闭文件:使用close()方法关闭文件,释放系统资源。

三、with open() 安全读写文件

3.1 open()函数的基本用法

open()函数用于打开文件,其基本语法如下:

file = open(file_path, mode='r', encoding=None)
  • file_path:文件的路径,可以是相对路径或绝对路径。
  • mode:打开模式,常见的模式有:
    • 'r':只读模式(默认),用于读取文件内容。
    • 'w':写入模式,用于创建新文件或覆盖原有文件内容。
    • 'a':追加模式,用于在文件末尾追加内容。
    • 'b':二进制模式,可与其他模式组合使用,如'rb'表示以二进制只读模式打开文件。
    • '+':读写模式,可与其他模式组合使用,如'r+'表示以读写模式打开文件。
  • encoding:文件的字符编码,如'utf - 8''gbk'等,在处理文本文件时需要指定合适的编码。

3.2 with open()语句的优势

在使用open()函数打开文件后,需要手动调用close()方法关闭文件。如果在文件操作过程中出现异常,可能会导致文件无法正常关闭,从而造成资源泄漏。为了避免这种情况,可以使用with open()语句,它会自动处理文件的打开和关闭操作,即使出现异常也能确保文件被正确关闭。示例代码如下:

with open('example.txt', 'r', encoding='utf - 8') as file:
    content = file.read()
    print(content)

3.3 文本文件的读写操作

3.3.1 读取文本文件
  • read()方法:读取整个文件内容,返回一个字符串。
with open('example.txt', 'r', encoding='utf - 8') as file:
    content = file.read()
    print(content)
  • readline()方法:逐行读取文件内容,每次返回一行字符串。
with open('example.txt', 'r', encoding='utf - 8') as file:
    line = file.readline()
    while line:
        print(line.strip())
        line = file.readline()
  • readlines()方法:读取文件的所有行,返回一个包含每行内容的列表。
with open('example.txt', 'r', encoding='utf - 8') as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())
3.3.2 写入文本文件
  • write()方法:将字符串写入文件。
with open('example.txt', 'w', encoding='utf - 8') as file:
    file.write('Hello, World!\n')
    file.write('This is a test.')
  • writelines()方法:将一个字符串列表写入文件。
lines = ['Line 1\n', 'Line 2\n', 'Line 3']
with open('example.txt', 'w', encoding='utf - 8') as file:
    file.writelines(lines)

3.4 二进制文件的读写操作

3.4.1 读取二进制文件

读取二进制文件时,需要以二进制模式('rb')打开文件。

with open('example.jpg', 'rb') as file:
    data = file.read()
3.4.2 写入二进制文件

写入二进制文件时,同样需要以二进制模式('wb')打开文件。

with open('new_example.jpg', 'wb') as file:
    file.write(data)

四、json模块处理配置文件

4.1 JSON数据格式简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。JSON数据由键值对组成,支持多种数据类型,如字符串、数字、布尔值、数组和对象。示例JSON数据如下:

{
   
    "name": "John",
    "age": 30,
    "hobbies": ["reading", "running"],
    "is_student": false
}

4.2 json模块的基本用法

Python的json模块提供了处理JSON数据的功能,主要包括以下几个方法:

  • json.dumps():将Python对象转换为JSON字符串。
import json

data = {
   
    "name": "John",
    "age": 30,
    "hobbies": ["reading", "running"],
    "is_student": false
}
json_str = json.dumps(data, indent = 4)
print(json_str)
  • json.loads():将JSON字符串转换为Python对象。
json_str = '{"name": "John", "age": 30, "hobbies": ["reading", "running"], "is_student": false}'
data = json.loads(json_str)
print(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI_DL_CODE

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值