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

商城网站系统资源

商城网站系统,资源,旅游公网站如何做,天心区网站建设公司在Python开发中,文件操作是非常基础且重要的技能。无论是读写数据、处理日志,还是管理文件系统,掌握文件操作和异常处理机制都能让你的代码更加健壮和高效。本文将系统介绍Python的文件操作基本方法,结合异常处理机制,…

在Python开发中,文件操作是非常基础且重要的技能。无论是读写数据、处理日志,还是管理文件系统,掌握文件操作和异常处理机制都能让你的代码更加健壮和高效。本文将系统介绍Python的文件操作基本方法,结合异常处理机制,并介绍常用的os模块功能,助你写出高质量的文件处理代码。


目录

一、Python文件操作基础

1.1  打开文件

1.2 读写文件

二、文件操作注意事项

三、Python异常处理机制

四、常用OS模块功能介绍

五、总结


一、Python文件操作基础

Python使用内置函数open()打开文件,常见用法:

f = open('filename.txt', mode='r', encoding='utf-8')
1.1  打开文件

mode参数指定文件打开模式:

'r'只读(默认)
'w'写入(会覆盖原文件)
'a'追加写入(在文本末尾追加,不会覆盖原文件)
'b'二进制模式
'+'读写模式

基础用法:

(1)'r':只读模式(默认)。文件必须存在,否则报错。

(2)'w':写入模式。如果文件存在,会清空原内容;文件不存在则新建。

(3)'a':追加模式。写入时从文件末尾追加内容,文件不存在则新建。

拼接用法

1. b(二进制模式)

(1)'rb':以二进制只读方式打开文件。常用于读取图片、视频、音频等非文本文件。

(2)'wb':以二进制写入方式打开文件。会覆盖原文件内容。

(3)'ab':以二进制追加方式打开文件。在文件末尾写入二进制数据。

2. +(读写模式)

(1)'r+':读写模式。文件必须存在,允许读取和写入。写入不会清空文件,但会从文件开头覆盖。

(2)'w+':读写模式。如果文件存在,会清空原内容再写;如果不存在则新建。

(3)'a+':读写模式。允许在文件末尾追加内容,也可以读取。文件不存在则新建。

3. b+ 结合

(1)'rb+':以二进制方式读写文件,文件必须存在。既能读也能写。

(2)'wb+':以二进制方式读写文件,如果文件存在会清空原内容。

(3)'ab+':以二进制方式读写文件,在文件末尾追加写入,同时允许读取。


1.2 读写文件

1)读文件操作:read()、readline()、readlines()

content = f.read()           # 读取全部内容
line = f.readline()          # 读取一行
lines = f.readlines()        # 读取所有行,返回列表

2)写入文件内容

f.write('Hello, world!\n')
f.writelines(['line1\n', 'line2\n'])

3)关闭文件:操作完成后,务必关闭文件释放资源

f.close()

4)推荐的with语句:使用with语句自动管理文件关闭,避免忘记关闭导致资源泄露

with open('filename.txt', 'r', encoding='utf-8') as f:content = f.read()
# 无需显式调用close,自动关闭

二、文件操作注意事项

1) 编码问题:读写文本文件时,推荐显式指定encoding='utf-8',避免编码错误。

2) 文件路径:使用绝对路径或相对路径时要注意当前工作目录,避免找不到文件。

3) 文件不存在:读取不存在的文件会抛出FileNotFoundError异常。

4) 写入模式谨慎:'w'模式会清空原文件,使用前确认需求

5) 二进制文件处理:图片、音频等文件需用'rb''wb'模式处理。

三、Python异常处理机制

文件操作常伴随异常,如文件不存在、权限不足等。Python的异常处理结构如下:

try:# 可能抛出异常的代码with open('file.txt', 'r') as f:data = f.read()
except FileNotFoundError:print("文件未找到,请检查路径")
except PermissionError:print("权限不足,无法访问文件")
except Exception as e:print(f"发生其他异常: {e}")
else:print("文件读取成功")
finally:print("无论是否异常都会执行")

1)try块中写可能出错的代码
2)except捕获并处理特定异常
3)else在无异常时执行
4)finally无论是否异常都会执行,常用于资源释放

四、常用OS模块功能介绍

os模块提供丰富的文件和目录操作接口,常用功能包括:

功能方法示例说明
获取当前工作目录os.getcwd()返回当前脚本运行的目录路径
改变工作目录os.chdir(path)切换当前工作目录
创建目录os.mkdir(path)创建单层目录
递归创建目录os.makedirs(path)创建多层目录
删除文件os.remove(path)删除指定文件
删除空目录os.rmdir(path)删除空目录
遍历目录os.listdir(path)返回目录下所有文件和目录列表
高效遍历目录os.scandir(path)返回目录迭代器,包含文件类型信息
判断路径类型os.path.isfile(path)判断是否为文件
断路径是否为目录os.path.isdir(path)判断是否为目录
拼接路径os.path.join(path, *paths)拼接路径,自动添加分隔符
获取绝对路径os.path.abspath(path)返回路径的绝对路径

1. 获取当前工作目录 — os.getcwd()

功能说明:

  • 返回当前Python脚本运行时的工作目录路径,类型为字符串。

示例:

import oscwd = os.getcwd()
print(f"当前工作目录是: {cwd}")

2. 改变工作目录 — os.chdir(path)

功能说明:

  • 将当前工作目录切换到指定路径 path
  • 后续相对路径操作都基于新目录。

示例:

import osos.chdir('/tmp')
print(f"切换后的工作目录: {os.getcwd()}")

3. 创建单层目录 — os.mkdir(path)

功能说明:

  • 在指定位置创建一个新目录。
  • 如果上级目录不存在,会抛出异常。

示例:

import osos.mkdir('new_folder')
print("目录创建成功")

4. 递归创建多层目录 — os.makedirs(path)

功能说明:

  • 递归创建多层目录,如果中间目录不存在,会自动创建。
import osos.makedirs('parent_dir/child_dir/grandchild_dir')
print("多层目录创建成功")

5. 删除文件 — os.remove(path)

功能说明:

  • 删除指定路径的文件。
  • 如果路径不存在或是目录,会抛出异常。

示例:

import osos.remove('file.txt')
print("文件删除成功")

6. 删除空目录 — os.rmdir(path)

功能说明:

  • 删除指定的空目录。
  • 如果目录非空或不存在,会抛出异常。

示例:

import osos.rmdir('empty_folder')
print("空目录删除成功")

7. 遍历目录内容 — os.listdir(path)

功能说明:

  • 返回指定目录下所有文件和目录的名称列表(字符串列表)。
  • 不包含子目录的内容,只列出当前目录。

示例:

import osentries = os.listdir('.')
print("当前目录下的文件和目录:", entries)

8. 高效遍历目录 — os.scandir(path)

功能说明:

  • 返回一个迭代器,迭代器中的每个元素是os.DirEntry对象,包含文件名、路径和类型等信息。
  • os.listdir()更高效,适合需要判断文件类型的场景。

示例:

import oswith os.scandir('.') as entries:for entry in entries:if entry.is_file():print(f"文件: {entry.name}")elif entry.is_dir():print(f"目录: {entry.name}")

9. 判断路径是否为文件 — os.path.isfile(path)

功能说明:

  • 判断给定路径是否存在且是一个文件。
  • 是文件返回 True,否则返回 False

示例:

import osif os.path.isfile('example.txt'):print("example.txt 是文件")
else:print("example.txt 不是文件")

10. 判断路径是否为目录 — os.path.isdir(path)

功能说明:

  • 判断给定路径是否存在且是一个目录。
  • 是目录返回 True,否则返回 False

示例:

import osif os.path.isdir('my_folder'):print("my_folder 是目录")
else:print("my_folder 不是目录")

11. 拼接路径 — os.path.join(path, *paths)

功能说明:

  • 拼接多个路径片段,自动添加操作系统的路径分隔符(如Windows的\,Linux的/)。
  • 避免手动拼接带来的错误。

示例:

import osfull_path = os.path.join('folder', 'subfolder', 'file.txt')
print(full_path)  # Windows: folder\subfolder\file.txt, Linux: folder/subfolder/file.txt

12. 获取绝对路径 — os.path.abspath(path)

功能说明:

  • 返回指定路径的绝对路径。
  • 若传入相对路径,转换为绝对路径。

示例:

import osabs_path = os.path.abspath('file.txt')
print(f"绝对路径是: {abs_path}")

五、总结

1)使用 open() 进行文件读写时,推荐采用 with 语句自动管理资源,避免忘记关闭文件导致的问题。

2)编写文件操作代码时,务必结合异常处理机制,捕获并处理可能出现的错误,提升程序的健壮性和稳定性。

3)利用 os 模块提供的丰富接口,实现文件和目录的创建、删除、遍历等常见操作,方便灵活地管理文件系统。

4)掌握 os.scandir() 等高效遍历目录的方法,能够显著提升文件系统操作的性能

http://www.dtcms.com/a/618108.html

相关文章:

  • 网站源码怎么有苏州首页关键词优化
  • 深度学习实战(基于pytroch)系列(二十二)多通道输入输出
  • 本周热搜(11月9日~11月16日)
  • React useMemo(当依赖项未变化,重复渲染时直接返回上一次缓存计算结果,而非重新执行计算)
  • 【IOS开发】Objective-C 与 Swift 的对比
  • 在STM32 HAL库中使用 WFI 实现低功耗准确延时
  • 编程语言落地手册:erlang实现与汇编剖析
  • 搜索下单(es、mysql、MQ同步;关于事务失效)
  • aleph-node Node upgrade instructions 节点升级说明
  • 找谁做网站网站建设与运营培训班
  • 智能制造与工业4.0:5G与物联网的深度融合
  • GSV1201S(2201S)#ACP@支持 DisplayPort 1.2 到 HDMI 1.4 转换且集成嵌入式 MCU
  • Linux SPI 驱动实验
  • 【开题答辩全过程】以 基于Java的水族馆销售与经营管理系统的设计与实现为例,包含答辩的问题和答案
  • 网站响应是什么问题吗最近国际时事
  • 从拟南芥到线虫:我的生物信息学多组学实操笔记
  • 指尖革命!2025输入法生态位深度测评:智能,远不止于输入!
  • 如何在Windows系统上安装和配置Node.js及Node版本管理器(nvm)
  • 网站开发 保证书旅游网站制作分析
  • Docker实战深度解析:从Nginx部署到私有镜像仓库管理
  • 读书笔记|算法的破坏性影响
  • 网站制作需要平台企业网站的切片怎么做
  • 数据结构与算法工程笔记:决策树/sstable与性能优化
  • Linux 服务器配置 rootless docker Quick Start
  • LTE/5G L3 RRC层技术介绍
  • C语言进阶知识--文件操作
  • 网站建设需要哪些资料扶贫网站建设方案
  • C++标准模板库(STL)——list的模拟实现
  • 幽冥大陆(二十二)dark语言智慧农业电子秤读取——东方仙盟炼气期
  • 5.驱动led灯