【Python】open() 函数:打开文件进行操作
在 Python 中,文件操作非常常见,可以通过内建的 open()
函数和其他文件处理函数对文件进行读取、写入、删除、重命名等操作。下面是 Python 中常见的文件操作方法和技巧。
1. 打开文件
使用 open()
函数打开文件,它会返回一个文件对象,可以用来读取或写入文件内容。
# 打开文件,'r' 表示读取模式
file = open('file.txt', 'r')
open()
函数常见模式:
'r'
:只读模式(默认模式)。文件必须存在。'w'
:写入模式。如果文件存在,文件内容会被覆盖;如果文件不存在,会创建一个新文件。'a'
:追加模式。如果文件存在,写入的数据会追加到文件末尾;如果文件不存在,会创建一个新文件。'b'
:二进制模式,通常与其他模式一起使用,如 'rb'
或 'wb'
。'x'
:排他性创建。如果文件已存在,抛出 FileExistsError
。't'
:文本模式(默认模式)。2. 读取文件
2.1 读取整个文件
使用 read()
方法可以读取文件的全部内容,返回一个字符串。
with open('file.txt', 'r') as file:
content = file.read()
print(content)
2.2 逐行读取文件
使用 readline()
方法可以逐行读取文件,每次调用返回文件的一行。使用 readlines()
方法可以读取文件的所有行并返回一个列表。
with open('file.txt', 'r') as file:
# 逐行读取
line = file.readline()
while line:
print(line.strip()) # 去掉行末的换行符
line = file.readline()
# 或者使用 readlines()
with open('file.txt', 'r') as file:
lines = file.readlines()
for line in lines:
print(line.strip())
3. 写入文件
3.1 写入文本
使用 write()
方法将文本写入文件。如果文件不存在,open()
会创建文件。
with open('file.txt', 'w') as file:
file.write("Hello, World!\n")
file.write("Welcome to Python file operations.\n")
3.2 追加文本
使用 'a'
模式打开文件,数据会被添加到文件末尾,而不会覆盖原内容。
with open('file.txt', 'a') as file:
file.write("Appending some new content.\n")
3.3 写入多行
可以通过 writelines()
方法一次性写入多行,注意每行必须以换行符结束。
lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
with open('file.txt', 'w') as file:
file.writelines(lines)
4. 关闭文件
虽然使用 with open()
语句可以自动关闭文件,但如果手动打开文件,操作完成后需要使用 close()
方法来关闭文件。
file = open('file.txt', 'r')
# 执行文件操作
file.close()
5. 文件的其他操作
5.1 获取文件大小
可以使用 os.path.getsize()
方法获取文件的大小,返回的是字节数。
import os
file_size = os.path.getsize('file.txt')
print(f"File size: {file_size} bytes")
5.2 检查文件是否存在
可以使用 os.path.exists()
或 os.path.isfile()
来检查文件是否存在。
import os
if os.path.exists('file.txt'):
print("File exists.")
else:
print("File does not exist.")
5.3 重命名文件
使用 os.rename()
可以重命名文件。
import os
os.rename('old_name.txt', 'new_name.txt')
5.4 删除文件
使用 os.remove()
删除文件。
import os
os.remove('file.txt')
5.5 创建文件夹
可以使用 os.mkdir()
或 os.makedirs()
创建文件夹,makedirs()
支持创建多级目录。
import os
os.mkdir('new_directory') # 创建单个目录
os.makedirs('parent/child/grandchild') # 创建多级目录
5.6 删除空目录
使用 os.rmdir()
删除空目录。
import os
os.rmdir('empty_directory')
5.7 删除非空目录
删除非空目录可以使用 shutil.rmtree()
,它会递归删除目录及其中的所有文件和子目录。
import shutil
shutil.rmtree('non_empty_directory')
6. 二进制文件操作
对于二进制文件(如图像、音频等),需要以二进制模式('rb'
, 'wb'
)打开文件。
6.1 读取二进制文件
with open('image.jpg', 'rb') as file:
content = file.read()
print(content) # 输出二进制数据
6.2 写入二进制文件
with open('output_image.jpg', 'wb') as file:
file.write(content) # 将二进制数据写入文件
7. 文件操作的高级技巧
7.1 上下文管理器
使用 with open()
可以确保文件操作完成后文件被自动关闭。它是一种更安全、更优雅的方式来处理文件。
with open('file.txt', 'r') as file:
content = file.read()
print(content)
7.2 异常处理
使用 try-except
来捕获文件操作中的异常。
try:
with open('non_existent_file.txt', 'r') as file:
content = file.read()
except FileNotFoundError:
print("File not found!")
except IOError:
print("An error occurred while handling the file.")
8. 总结
Python 提供了强大的文件操作功能,包括:
open()
打开文件,可以通过不同的模式进行文件读取、写入、追加等操作。read()
读取全部内容,使用 readline()
或 readlines()
逐行读取。write()
或 writelines()
写入文本内容。os
和 shutil
模块。'rb'
和 'wb'
模式进行操作。with
语句可以确保文件的正确关闭,避免文件泄露。作者:彬彬侠