python教程:python操作文件及其案例

在 Python 中,文件操作是通过内置的 open() 函数实现的,支持多种模式来读写文件,包括文本文件和二进制文件。Python 提供了丰富的文件操作方法,能够方便地进行文件的读取、写入、关闭等操作。

文件操作的基本步骤

  1. 打开文件:使用 open() 函数。
  2. 读写文件:根据需要进行文件的读或写操作。
  3. 关闭文件:使用 close() 方法或 with 语句块自动关闭文件。

open() 函数

open(file, mode='r', encoding=None)
  • file:要打开的文件名(包括路径)。
  • mode:指定打开文件的模式,常见模式包括:
    • 'r':只读模式(默认),文件必须存在。
    • 'w':写入模式,会先清空文件内容,文件不存在则创建。
    • 'a':追加模式,在文件末尾添加内容,文件不存在则创建。
    • 'b':二进制模式,适用于处理非文本文件。
    • 't':文本模式(默认),处理文本文件。
    • 'x':写入模式,文件必须不存在,否则抛出异常。
  • encoding:指定文件编码,常用于读取或写入文本文件时指定编码,如 utf-8

常见的文件操作方法

  • read(size):读取指定字节数的数据,如果不指定 size,则读取整个文件。
  • readline():按行读取文件内容,返回文件的一行。
  • readlines():读取文件的所有行并返回一个列表,每一行为一个元素。
  • write(string):将字符串写入文件。
  • writelines(list):将多个字符串写入文件,参数是字符串列表。
  • close():关闭文件,释放资源。
  • seek(offset, from):移动文件指针到指定位置。
  • tell():返回文件指针当前位置。

1. 文件读取的基本示例

示例:读取整个文件内容
# 使用 'r' 模式打开文件,表示只读模式
file = open("example.txt", "r", encoding="utf-8")

# 读取整个文件内容
content = file.read()
print(content)

# 关闭文件
file.close()
示例:按行读取文件
# 使用 'r' 模式按行读取文件内容
file = open("example.txt", "r", encoding="utf-8")

# 按行读取文件内容
for line in file:
    print(line.strip())  # 使用 strip() 去除换行符

# 关闭文件
file.close()
示例:使用 readline() 方法按行读取
file = open("example.txt", "r", encoding="utf-8")

# 读取一行内容
line1 = file.readline()
print(line1.strip())

# 读取下一行内容
line2 = file.readline()
print(line2.strip())

file.close()
示例:使用 readlines() 读取文件的所有行
file = open("example.txt", "r", encoding="utf-8")

# 读取文件的所有行,返回一个列表
lines = file.readlines()
for line in lines:
    print(line.strip())

file.close()

2. 文件写入的基本示例

示例:写入文件
# 使用 'w' 模式打开文件(写模式),如果文件不存在会创建新文件
file = open("output.txt", "w", encoding="utf-8")

# 写入单行内容
file.write("Hello, World!\n")

# 写入多行内容
lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
file.writelines(lines)

file.close()
示例:追加写入文件
# 使用 'a' 模式打开文件(追加模式),不会清空文件内容
file = open("output.txt", "a", encoding="utf-8")

# 追加内容
file.write("This is an appended line.\n")

file.close()

3. 使用 with 语句块自动管理文件

在 Python 中,with 语句块提供了更安全和简洁的方式来处理文件。在 with 语句块中打开的文件,在块结束时会自动关闭,无需显式调用 close()

示例:使用 with 语句读取文件
# 使用 with 自动关闭文件
with open("example.txt", "r", encoding="utf-8") as file:
    content = file.read()
    print(content)
示例:使用 with 语句写入文件
# 使用 with 自动关闭文件
with open("output.txt", "w", encoding="utf-8") as file:
    file.write("This is written using 'with' block.\n")

4. 读写二进制文件

在处理图片、音频、视频等非文本文件时,需要使用二进制模式打开文件。二进制模式使用 'b' 来标记。

示例:读取二进制文件(如图片)
# 使用 'rb' 模式打开二进制文件
with open("example_image.png", "rb") as file:
    binary_content = file.read()

# 打印文件的前 20 个字节
print(binary_content[:20])
示例:写入二进制文件
# 使用 'wb' 模式写入二进制文件
with open("output_image.png", "wb") as file:
    file.write(binary_content)

5. 文件指针操作

文件指针用于指定文件读取或写入的当前位置,通常在需要跳过部分文件内容时使用。seek()tell() 方法用于控制文件指针。

  • seek(offset, from):移动文件指针到指定位置。
    • offset:偏移量。
    • from:参考位置,0 表示文件开头,1 表示当前位置,2 表示文件末尾。
  • tell():返回文件指针当前的位置。
示例:文件指针操作
with open("example.txt", "r", encoding="utf-8") as file:
    print(file.read(5))  # 读取前 5 个字符
    print(file.tell())  # 返回文件指针当前位置(5)
    
    file.seek(0)  # 将文件指针移回文件开头
    print(file.read(5))  # 再次读取前 5 个字符

6. 文件的异常处理

在文件操作过程中可能会遇到文件不存在或读写失败等问题。可以使用 try...except 块来处理异常。

示例:处理文件打开异常
try:
    with open("nonexistent_file.txt", "r", encoding="utf-8") as file:
        content = file.read()
except FileNotFoundError:
    print("File not found!")
except IOError:
    print("Error while reading the file!")

总结

  • 读取文件:可以使用 read() 读取整个文件内容,readline() 按行读取,或者 readlines() 读取文件的所有行并返回列表。
  • 写入文件:使用 write() 写入内容,或者使用 writelines() 写入多个字符串。
  • 文件模式:通过 open() 函数指定文件模式,常见模式包括 'r''w''a''b''t'
  • 文件指针:可以使用 seek()tell() 控制文件指针的位置。
  • 异常处理:通过 try...except 块处理文件操作中的异常情况。

通过这些方法,Python 提供了强大的文件操作能力,使得处理文件变得非常方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

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

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

打赏作者

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

抵扣说明:

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

余额充值