【30天玩转python】文件操作

文件操作

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 都提供了简便易用的接口。通过正确使用文件读写操作、文件指针控制以及与目录相关的操作,我们能够灵活地处理各种文件系统任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱技术的小伙子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值