【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() 写入文本内容。
  • 对文件进行重命名、删除、获取大小等操作时,Python 提供了 osshutil 模块。
  • 对于二进制文件,可以以 'rb''wb' 模式进行操作。
  • 使用 with 语句可以确保文件的正确关闭,避免文件泄露。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

彬彬侠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值