当前位置: 首页 > news >正文

【Python】学习笔记 - 文件与异常

【Python】学习笔记 - 文件与异常

  • 1. Python的文件
    • 1.1 文件的概念相关
    • 1.2 文件的基本操作
      • 1.2.1 打开文件(open函数)
      • 1.2.2 写入文件(write函数)
      • 1.2.3 读取文件(read函数)
      • 1.2.4 关闭文件(close函数)
  • 2. os模块方法
    • 2.1 文件操作相关方法
    • 2.2 文件夹操作相关方法
    • 2.3 文件夹删除补充
    • 2.4 with-open

1. Python的文件

1.1 文件的概念相关

内存中存放的数据在计算机关机后就会消失。要长久保存数据,就要使用硬盘、光盘、U 盘等设备。为了便于数据的管理和检索,引入了文件的概念。我们对文件的主要操作:创建文件、打开文件、文件读写、文件备份等等

1.2 文件的基本操作

1.2.1 打开文件(open函数)

f = open(name, mode) 注:返回的结果是一个file文件对象(后续会学习,只需要记住,后续方法都是f.方法())

name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。

  1. 绝对路径:绝对路径表示绝对概念,一般都是从盘符开始,然后一级一级向下查找(不能越级),直到找到我们要访问的文件即可。例如:C:\Python\python.txt
  2. 相对路径:相对路径表示相对概念,不需要从盘符开始,首先需要找到一个参考点(就是Python文件本身)

1.2.2 写入文件(write函数)

代码示例:其中encoding='utf-8'表示编码方式,用于解决中文乱码问题

# 1、打开文件 f = open('python.txt', 'w', encoding='utf-8') # 2、写入内容 f.write('人生苦短,我学Python!') # 3、关闭文件 f.close()

1.2.3 读取文件(read函数)

read(size)方法:主要用于文本类型或者二进制文件(图片、音频、视频…)数据的读取。
size表示要从文件中读取的数据的长度(单位是字符/字节),如果没有传入size,那么就表示读取文件中所有的数据。
读取文件相关方法:

  1. read(size)
  2. readline():主要用于文本类型数据的读取
  3. readlines():按照行的方式读取整个文件,返回一个内容列表,每一行的数据为一个元素
dest_f = open("data/1.txt", 'r') # 一次性读取全部文件: print(dest_f.read()) # 按字符读取:⭐️ while True: char = dest_f.read(3) if len(char) == 0: break print(char) # 按行读取:⭐️ while True: line = dest_f.readline() if len(line) == 0: break print(line, end='') # 一次读取所有行 print(dest_f.readlines())

1.2.4 关闭文件(close函数)

2. os模块方法

2.1 文件操作相关方法


案例:把Python项目目录下的python.txt文件,更名为linux.txt,休眠20s,刷新后,查看效果,然后对这个文件进行删除操作。

# 第一步:导入os模块 import os # 第三步:引入time模块 import time # 第二步:使用os.rename方法对python.txt进行重命名 os.rename('python.txt', 'linux.txt') # 第四步:休眠20s time.sleep(20) # 第五步:删除文件(linux.txt) os.remove('linux.txt')

2.2 文件夹操作相关方法


代码示例:

# 导入os模块 import os # 1、使用mkdir方法创建一个images文件夹 if not os.path.exists('images'): os.mkdir('images') if not os.path.exists('images/avatar') os.mkdir('images/avatar') # 2、getcwd = get current work directory print(os.getcwd()) # 3、os.chdir,ch = change dir = directory切换目录 os.chdir('images/avatar') print(os.getcwd()) # 切换到上一级目录 => images os.chdir('../../') print(os.getcwd()) # 4、使用os.listdir打印当前所在目录下的所有文件,返回列表 print(os.listdir()) # 5、删除空目录 os.rmdir('images/avatar')

2.3 文件夹删除补充

# 导入shutil模块 import shutil # 递归删除非空目录 shutil.rmtree('要删除文件夹路径') #(递归删除、慎重!)

递归删除文件夹的原理:理论上,其在删除过程中,如果文件夹非空,则自动切换到文件夹的内部,然后把其内部的文件,一个一个删除,当所有文件删除完毕后,返回到上一级目录,删除文件夹本身。

2.4 with-open

主要是针对于文件操作的, 即: 你再也不用手动 close()释放资源了, 该语句会在 语句体执行完毕后, 自动释放资源.格式:

with open('路径', '模式', '码表') as 别名, open('路径', '模式', '码表') as 别名: ​ 语句体
http://www.cnnetsun.cn/news/1461677.html

相关文章:

  • 计算机毕业设计:Python基于协同过滤的美食个性化推荐平台 Django框架 可视化 协同过滤推荐算法 菜谱 食品 机器学习(建议收藏)✅
  • RMBG-2.0参数详解与性能优化:低显存下GPU利用率提升60%实操手册
  • res-downloader:重构网络资源获取逻辑的全栈解决方案
  • s2-pro GPU部署优化实践:显存占用从3.2GB降至2.1GB的配置调优方法
  • FLUX.1-dev开源大模型实战:像素幻梦在数字藏品平台像素资产生成落地
  • python破烂二手旧物上门回收预约管理系统
  • 从零玩转STM32MP157:用Linux命令控制M4核的LED(OpenAMP+RPMsg实战)
  • 企业资产追踪系统构建指南:从痛点分析到全流程落地
  • Python中代码覆盖率测试的实现方法
  • SystemVerilog宏定义`define的高级应用:参数传递与代码复用
  • 保姆级教程:在RK3588/RK3399上动手实现一个简单的PCIe EP设备驱动
  • LFM2.5-1.2B-Thinking与Qt集成:跨平台桌面应用开发
  • 300W数据集深度解析:从数据构成到实际应用场景
  • Cosmos-Reason1-7B模型推理性能基准测试:对比不同GPU算力下的表现
  • MCP23017 I²C GPIO扩展库详解:16位中断驱动型IO控制
  • 基于PHP、asp.net、java、Springboot、SSM、vue3的技术博客系统的设计与实现
  • Ubuntu 22.04 LTS 环境下的 MuJoCo 3.3.0 一站式部署与验证指南
  • 崩盘预警:软件测试工程师的加密市场做空指南
  • 基于springboot的微信小程序民宿预约管理系统呢vue3
  • eNSP保姆级安装指南:从零到一,避坑实战
  • 华硕笔记本性能调优利器:GHelper从入门到精通指南
  • ofa_image-caption镜像免配置:Streamlit界面+ModelScope Pipeline开箱即用
  • 探索已归档的Dart后端宝藏:Angel框架全功能解析
  • 3步解锁惠普游戏本潜能:OmenSuperHub开源控制工具全解析
  • BLE嵌入式入门:极简LED控制服务实现
  • Kook Zimage真实幻想Turbo成本分析:个人显卡就能跑,看看实际投入与回报
  • TIDAL音乐高效获取指南:用tidal-dl-ng实现品质保障的媒体下载方案
  • BERT-tiny语音意图识别用[AI人工智能(六十三)]—东方仙盟
  • HoloCubic商业模式探索:从开源项目到商业化产品的完整转型指南
  • GraphQL Java 异常处理终极指南:深度解析 ExceptionWhileDataFetching