文件操作
Python 提供了一组强大且简单的文件操作功能,使得读写文件变得非常容易。通过 Python 的内置函数和标准库,我们可以方便地处理各种文件格式,如文本文件、二进制文件等。本节将详细介绍文件的基本操作,包括文件的打开、读取、写入和关闭等操作。
1. 打开文件
使用 open()
函数可以打开一个文件,进行读写操作。该函数的基本语法如下:
file = open('文件名', '模式')
常用的模式如下:
'r'
:只读模式(默认),如果文件不存在则报错。'w'
:写模式,若文件存在则覆盖,不存在则创建新文件。'a'
:追加模式,文件指针在文件末尾,若文件不存在则创建。'b'
:二进制模式,与其他模式结合使用,如'rb'
、'wb'
。'+'
:读写模式,与其他模式结合使用,如'r+'
、'w+'
。
# 打开一个文件进行读取
file = open('example.txt', 'r')
2. 读取文件
2.1 read()
读取文件
read()
函数一次性读取整个文件内容,适合处理小文件。
file = open('example.txt', 'r')
content = file.read()
print(content) # 输出文件的全部内容
file.close()
2.2 readline()
读取一行
readline()
每次读取一行内容,适合逐行读取。
file = open('example.txt', 'r')
line = file.readline()
print(line) # 输出第一行内容
file.close()
2.3 readlines()
读取所有行
readlines()
读取文件的所有行,并返回一个包含每一行的列表。
file = open('example.txt', 'r')
lines = file.readlines()
for line in lines:
print(line.strip()) # 输出每一行内容,并去除末尾的换行符
file.close()
3. 写入文件
3.1 write()
写入内容
使用 write()
可以将字符串写入文件中。
file = open('output.txt', 'w')
file.write("Hello, Python!")
file.close()
每次执行写操作时,都会覆盖文件内容。如果需要追加,可以使用 'a'
模式。
file = open('output.txt', 'a')
file.write("\nThis is appended text.")
file.close()
3.2 writelines()
写入多行
writelines()
方法接受一个字符串列表,将其写入文件。
lines = ["First line.\n", "Second line.\n", "Third line.\n"]
file = open('output.txt', 'w')
file.writelines(lines)
file.close()
4. 使用 with
语句操作文件
使用 with
语句处理文件操作,能够自动关闭文件,即使发生异常也不会影响文件的关闭操作。推荐使用这种方式来进行文件读写。
with open('example.txt', 'r') as file:
content = file.read()
print(content)
# 文件会在离开 `with` 代码块时自动关闭
同样的,写入文件也可以使用 with
语句:
with open('output.txt', 'w') as file:
file.write("This is a new file.")
5. 文件指针操作
当文件被打开时,文件指针(指示读取或写入位置)会被放置在文件的开头。我们可以通过以下几种方式控制文件指针的位置。
5.1 tell()
获取文件指针位置
tell()
方法返回文件指针当前的位置(以字节为单位)。
with open('example.txt', 'r') as file:
print(file.tell()) # 输出文件指针的位置
5.2 seek()
移动文件指针
seek()
方法将文件指针移动到指定位置。
with open('example.txt', 'r') as file:
file.seek(5) # 移动文件指针到第 5 个字节
content = file.read()
print(content)
seek()
方法有两个参数:
- 第一个参数:偏移量,表示从文件开头移动的字节数。
- 第二个参数(可选):可选值
0
(默认,从文件开头计算)、1
(从当前位置计算)、2
(从文件末尾计算)。
6. 文件与目录操作
Python 的 os
模块提供了对文件和目录进行操作的方法。
6.1 判断文件或目录是否存在
使用 os.path.exists()
判断文件或目录是否存在。
import os
if os.path.exists('example.txt'):
print("文件存在")
else:
print("文件不存在")
6.2 创建目录
os.mkdir()
方法用于创建目录,os.makedirs()
可以递归创建多级目录。
os.mkdir('new_directory') # 创建一个目录
os.makedirs('parent/child') # 创建多级目录
6.3 删除文件或目录
os.remove()
用于删除文件,os.rmdir()
删除空目录,shutil.rmtree()
可以删除包含文件的目录。
import shutil
os.remove('output.txt') # 删除文件
shutil.rmtree('parent') # 递归删除包含文件的目录
6.4 重命名文件或目录
os.rename()
用于重命名文件或目录。
os.rename('old_name.txt', 'new_name.txt')
7. 处理二进制文件
读取和写入二进制文件时,需要使用 'rb'
和 'wb'
模式。
# 读取二进制文件
with open('example.jpg', 'rb') as file:
data = file.read()
# 写入二进制文件
with open('copy.jpg', 'wb') as file:
file.write(data)
8. 小结
文件操作是 Python 中非常重要的功能,无论是文本文件还是二进制文件,Python 都提供了简便易用的接口。通过正确使用文件读写操作、文件指针控制以及与目录相关的操作,我们能够灵活地处理各种文件系统任务。