Python文件操作
文件操作基础
什么是文件操作?
文件操作是程序开发中的重要组成部分,它允许我们读取和写入文件,实现数据的持久化存储。Python提供了简单而强大的文件操作接口。
文件路径
在Python中,文件路径可以是相对路径或绝对路径:
# 相对路径
file_path = "data/example.txt"
# 绝对路径
file_path = "C:/Users/username/Documents/example.txt"
# 使用原始字符串处理Windows路径
file_path = r"C:\Users\username\Documents\example.txt"
文件打开模式
常用文件模式
# 只读模式
file = open('example.txt', 'r')
# 写入模式(覆盖原有内容)
file = open('example.txt', 'w')
# 追加模式
file = open('example.txt', 'a')
# 读写模式
file = open('example.txt', 'r+')
注意事项
打开文件后必须记得关闭文件,否则可能导致资源泄露。推荐使用with语句自动处理文件的关闭。
读写操作
文件读取
# 读取整个文件
with open('example.txt', 'r', encoding='utf-8') as file:
content = file.read()
# 逐行读取
with open('example.txt', 'r', encoding='utf-8') as file:
for line in file:
print(line.strip())
# 读取指定字节数
with open('example.txt', 'r', encoding='utf-8') as file:
chunk = file.read(1024) # 读取1024个字节
文件写入
# 写入字符串
with open('example.txt', 'w', encoding='utf-8') as file:
file.write('Hello, World!\n')
file.write('这是第二行')
# 写入多行
lines = ['第一行', '第二行', '第三行']
with open('example.txt', 'w', encoding='utf-8') as file:
file.writelines(line + '\n' for line in lines)
上下文管理器
with语句的优势
使用with语句可以自动处理文件的关闭,即使发生异常也能确保文件被正确关闭。
# 不使用with语句
file = open('example.txt', 'r')
try:
content = file.read()
finally:
file.close()
# 使用with语句(推荐)
with open('example.txt', 'r') as file:
content = file.read()
# 文件会自动关闭
二进制文件操作
处理图片、音频等二进制文件时,需要使用二进制模式:
# 读取二进制文件
with open('image.jpg', 'rb') as file:
binary_data = file.read()
# 写入二进制文件
with open('copy.jpg', 'wb') as file:
file.write(binary_data)
练习与实践
练习1:文件复制器
创建一个函数,可以复制文本文件的内容到新文件,并在复制时统计文件的行数和字符数。
提示:使用with语句同时打开两个文件,一个用于读取,一个用于写入。
def copy_file(source_path, target_path):
"""
复制文件内容并统计信息
返回元组:(行数, 字符数)
"""
# 在此编写你的代码
pass
练习2:日志分析器
编写一个程序,读取日志文件并统计每种日志级别(INFO, WARNING, ERROR)的出现次数。
提示:使用字典来存储统计结果,可以使用字符串的split()方法分割日志行。
def analyze_log(log_file_path):
"""
分析日志文件,返回各日志级别的统计结果
返回字典:{'INFO': count, 'WARNING': count, 'ERROR': count}
"""
# 在此编写你的代码
pass