从零开始学习 Python 3 - 文件操作 2:文件、文件夹操作进阶,玩转文件处理技巧!

  • 公众号:人生只不过是一场投资
  • 温馨提示:每个笔记文档都会绑定一个笔记资源;手机端可能看不到,网页端请自行下载。

还记得上节课我们学习了如何用 Python 读取和写入文件吗?

这次,我们将探索更多实用技巧,让你成为文件处理达人! 😎

前言

上一节课我们学习了使用 open() 函数打开文件,并使用 read()write() 等方法进行基本的读写操作。

这次,我们将学习一些更高级的操作,例如:

  • 文件指针: 自由控制读取位置
  • 二进制文件: 处理图片、音频等非文本文件
  • 文件和目录管理: 创建、删除、重命名文件和目录

一、 文件指针:精确定位读取位置

文件指针就像书签一样,标记着当前读取的位置。

  • tell() 方法:获取当前文件指针的位置。
  • seek() 方法:将文件指针移动到指定位置。
#  打开文件
file = open('my_file.txt', 'r')

#  获取当前文件指针位置
position = file.tell()
print(f"Current position: {position}")  #  输出:0

#  读取一行
line = file.readline()
print(f"Read line: {line}")

#  再次获取文件指针位置
position = file.tell()
print(f"Current position: {position}")  #  输出:行长度 + 1 (因为换行符)

#  将文件指针移动到文件开头
file.seek(0)

#  再次读取一行
line = file.readline()
print(f"Read line: {line}")  #  输出:第一行内容

#  关闭文件
file.close()

二、 二进制文件:处理非文本数据

除了文本文件,我们还可以使用 Python 处理图片、音频等二进制文件。

#  读取图片
with open('my_image.jpg', 'rb') as image_file:
  image_data = image_file.read()

#  处理图片数据...

#  写入图片
with open('new_image.jpg', 'wb') as new_image_file:
  new_image_file.write(image_data)

注意: 打开二进制文件时,需要在文件模式中添加 'b'

三、 文件和目录管理:操作系统交互

Python 提供 os 模块,可以让我们与操作系统进行交互,例如创建、删除、重命名文件和目录。

3.1 文件操作

  • os.rename(old_name, new_name):重命名文件。
  • os.remove(filename):删除文件。

3.2 目录操作

  • os.mkdir(dirname):创建目录。
  • os.rmdir(dirname):删除空目录。
  • os.chdir(path):切换当前工作目录。
  • os.getcwd():获取当前工作目录。
  • os.listdir(path):列出指定目录下的所有文件和子目录。
import os

#  创建目录
os.mkdir('my_folder')

#  切换到新目录
os.chdir('my_folder')

#  创建文件
with open('my_file.txt', 'w') as file:
  file.write("Hello from my_file.txt!")

#  列出当前目录下的文件和目录
print(os.listdir())  #  输出:['my_file.txt']

#  删除文件
os.remove('my_file.txt')

#  切换回上一级目录
os.chdir('..')

#  删除目录
os.rmdir('my_folder')

总结

  • 使用文件指针可以精确定位文件读取位置。
  • 使用二进制模式可以处理图片、音频等非文本文件。
  • 使用 os 模块可以进行文件和目录管理。

掌握了这些技巧,你就可以像操作普通文件一样,轻松处理各种类型的数据,让你的 Python 程序更加强大! 🚀

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ょ镜花う水月

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

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

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

打赏作者

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

抵扣说明:

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

余额充值