网站首页> 文章专栏> 机器学习之Python(8): Python中文件读写功能的使用
机器学习之Python(8): Python中文件读写功能的使用
原创 时间:2025-03-15 15:05 作者:管理员 浏览量:121

在 Python 的世界里,文件读写操作就像是一把钥匙,打开了程序与外部数据交互的大门。无论是处理配置文件、日志记录,还是进行数据处理和分析,文件读写都是不可或缺的基础技能。本文将深入浅出地介绍 Python 中文件读写的相关知识,从基础概念到实际应用,带你逐步掌握这一关键技能。

一、文件打开与关闭

在 Python 中,使用内置的open()函数来打开一个文件。open()函数的基本语法如下:
file = open(file_path, mode='r', encoding=None)
  • file_path:要打开的文件的路径,可以是绝对路径或相对路径。
  • mode:文件打开模式,常用的模式有:
    • 'r':只读模式,默认模式。如果文件不存在,会抛出FileNotFoundError异常。
    • 'w':写入模式。如果文件已存在,会清空文件内容;如果文件不存在,会创建新文件。
    • 'a':追加模式。如果文件已存在,新内容会追加到文件末尾;如果文件不存在,会创建新文件。
    • 'x':独占创建模式。如果文件已存在,会抛出FileExistsError异常;如果文件不存在,会创建新文件。
  • encoding:指定文件的编码方式,例如'utf - 8'。如果不指定,Python 会使用系统默认编码。
文件使用完毕后,一定要使用close()方法关闭文件,以释放系统资源。例如:
file = open('example.txt', 'r')
# 进行文件操作
file.close()
为了确保文件无论是否发生异常都会被正确关闭,推荐使用with语句,它会自动处理文件的关闭操作:
with open('example.txt', 'r') as file:
# 进行文件操作
pass

二、读取文件内容

读取整个文件

使用read()方法可以读取文件的全部内容,返回一个字符串。例如:
with open('example.txt', 'r') as file:
content = file.read()
print(content)

按行读取文件

使用readlines()方法可以将文件内容按行读取,返回一个字符串列表,每个元素是文件中的一行内容。例如:
with open('example.txt', 'r') as file:
lines = file.readlines()
for line in lines:
print(line.strip()) # strip()方法用于去除每行末尾的换行符
也可以使用readline()方法逐行读取文件,每次调用readline()方法会读取文件的下一行内容。例如:
with open('example.txt', 'r') as file:
line = file.readline()
while line:
print(line.strip())
line = file.readline()
还可以直接对文件对象进行迭代,这种方式更加简洁高效。例如:
with open('example.txt', 'r') as file:
for line in file:
print(line.strip())

三、写入文件内容

写入字符串

使用write()方法可以将字符串写入文件。例如:
with open('output.txt', 'w') as file:
file.write('Hello, Python!\n')
file.write('This is a new line.\n')
注意,write()方法不会自动添加换行符,需要手动添加。

写入列表

如果要将一个字符串列表写入文件,可以使用writelines()方法。例如:
lines = ['Line 1\n', 'Line 2\n', 'Line 3\n']
with open('output.txt', 'w') as file:
file.writelines(lines)

四、文件指针操作

文件对象有一个文件指针,用于指示当前读写的位置。可以使用tell()方法获取当前文件指针的位置,使用seek()方法移动文件指针到指定位置。例如:
with open('example.txt', 'r') as file:
print(file.tell()) # 输出文件指针初始位置,通常为0
file.read(5) # 读取5个字符
print(file.tell()) # 输出当前文件指针位置
file.seek(0) # 将文件指针移动到文件开头
print(file.read()) # 重新读取文件内容

五、二进制文件的读写

除了文本文件,Python 还可以读写二进制文件,如图片、音频、视频等。在打开二进制文件时,需要将文件打开模式设置为'rb'(只读二进制模式)或'wb'(写入二进制模式)。例如,读取一张图片并保存为另一个文件:
with open('source.jpg', 'rb') as source_file:
with open('destination.jpg', 'wb') as destination_file:
data = source_file.read()
destination_file.write(data)

六、常见应用场景

配置文件读取

许多应用程序使用配置文件来存储程序的设置和参数。例如,一个简单的 Python 脚本可能需要读取一个config.ini文件来获取数据库连接信息。可以使用 Python 的configparser模块来读取配置文件。例如:
import configparser
config = configparser.ConfigParser()
config.read('config.ini')
db_host = config.get('database', 'host')
db_port = config.getint('database', 'port')
db_user = config.get('database', 'user')
db_password = config.get('database', 'password')

日志记录

在程序运行过程中,记录日志是非常重要的。Python 的logging模块提供了强大的日志记录功能,可以将日志信息写入文件。例如:
import logging
logging.basicConfig(filename='app.log', level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s')
logging.info('程序开始运行')
try:
result = 1 / 0
except ZeroDivisionError as e:
logging.error(f'发生错误: {e}')
logging.info('程序结束运行')

数据处理与分析

在数据处理和分析中,经常需要读取和写入大量的数据文件。例如,读取一个 CSV 文件并进行数据清洗和转换,然后将结果保存为新的 CSV 文件。可以使用 Python 的pandas库来方便地处理 CSV 文件。例如:
import pandas as pd
# 读取CSV文件
data = pd.read_csv('data.csv')
# 数据清洗和转换
data = data.dropna() # 删除包含缺失值的行
data['new_column'] = data['column1'] + data['column2']
# 保存为新的CSV文件
data.to_csv('processed_data.csv', index=False)

七、总结

Python 提供了丰富而简洁的文件读写功能,通过open()函数、文件对象的方法以及各种标准库和第三方库,我们可以轻松地处理各种类型的文件。掌握文件读写操作是 Python 编程的基础,也是进行更复杂应用开发的必备技能。
动动小手 !!!
来说两句吧
最新评论