【Python】数据处理:OS目录文件操作

Python的os模块是一个用于与操作系统进行交互的标准库模块。它提供了丰富的功能来处理文件和目录、执行系统命令、获取和设置环境变量等。

工作目录操作

获取当前工作目录

python 复制代码
os.getcwd()
  • 参数:无
  • 返回值:一个字符串 ,表示当前工作目录的路径。这个路径是Python解释器开始执行脚本时所在的目录,或者是最后通过 os.chdir(path) 函数改变的目录。

改变当前工作目录

python 复制代码
os.chdir(path)
  • 参数:path(必需):一个字符串,指定要更改到的目标目录的路径。

  • 返回值:无

目录操作

创建一个目录

python 复制代码
os.mkdir(path,mode,dir_fd)
  • 参数
    • path (str): 要创建的目录路径。
    • mode (int, optional): 指定目录的权限,默认值是 0o777。在某些系统上可能会被 umask 覆盖。
    • dir_fd (optional): 如果提供,此路径相对于 dir_fd 指定的目录
  • 返回值:无

递归创建目录。如果中间的目录不存在,也会一并创建。

python 复制代码
os.makedirs(name,mode,exist_ok)
  • 参数
    • name (str): 要创建的目录路径。
    • mode (int, optional): 指定目录的权限,默认值是 0o777。在某些系统上可能会被 umask 覆盖。
    • exist_ok (bool, optional): 如果为 True,当目标目录已经存在时不会引发异常。如果为 False,当目标目录已经存在时会引发 FileExistsError
  • 返回值:无

删除一个目录。该目录必须是空的,否则会引发 OSError 异常。

python 复制代码
os.rmdir(path,dir_fd)
  • 参数
    • path (str): 要删除的目录路径。
    • dir_fd (optional): 如果提供,此路径相对于 dir_fd 指定的目录。
  • 返回值:无

递归删除目录。从指定路径开始,依次删除各级目录。如果目录为空,则删除之,直至某个目录非空或所有目录都被删除。

python 复制代码
os.removedirs(name)
  • 参数:name (str): 要删除的目录路径。
  • 返回值:无

文件操作

虽然os模块没有直接创建文件的方法,但可以通过open函数创建文件。

python 复制代码
open('file.txt', 'w').close()  # 创建一个空文件

删除指定路径的文件。如果路径指向的是一个目录,将引发 IsADirectoryError 异常。

python 复制代码
os.remove(path,dir_fd)
  • 参数:
    • path (str): 要删除的文件路径。
    • dir_fd (optional): 如果提供,此路径相对于 dir_fd 指定的目录。
  • 返回值:无

重命名文件或目录

python 复制代码
os.rename(src,dst,src_dir_fd,dst_dir_fd)
  • 参数:
    • src (str): 原文件或目录路径。
    • dst (str): 新文件或目录路径。
    • src_dir_fd (optional): 如果提供,src 是相对于 src_dir_fd 指定的目录。
    • dst_dir_fd (optional): 如果提供,dst 是相对于 dst_dir_fd 指定的目录。
  • 返回值:无

文件属性

检查指定的路径是否是一个文件

os.path.isfile(path)
  • 参数:path (str) - 要检查的路径。
  • 返回值:如果路径是一个存在的文件,返回 True;否则返回 False

检查指定的路径是否是一个目录

os.path.isdir(path)
  • 参数:path (str) - 要检查的路径。
  • 返回值:如果路径是一个存在的目录,返回 True;否则返回 False

返回指定路径的文件大小(以字节为单位)

os.path.getsize(path)
  • 参数:path (str) - 要获取大小的文件路径。

  • 返回值:返回文件的大小(以字节为单位)。

获取文件最后修改时间

os.path.getmtime(path)
  • 参数:path (str) - 要获取修改时间的文件路径。

  • 返回值:返回文件最后修改时间的时间戳(自纪元以来的秒数表示,通常是 Unix 时间戳)。

从路径中获取文件名(不包含目录部分)

os.path.basename(path)
  • 参数:path (str) - 要提取文件名的路径。

  • 返回值:返回路径中的文件名部分。

从路径中获取目录名(不包含文件名部分)

os.path.dirname(path)
  • 参数:path (str) - 要提取目录名的路径。

  • 返回值:返回路径中的目录名部分。

路径操作

检查文件或目录是否存在

os.path.exists(path)
  • 参数:path (str) - 要检查的文件或目录路径。

  • 返回值:如果路径存在,返回 True;否则返回 False

将一系列的路径片段解析为绝对路径

python 复制代码
path.resolve([...paths])
  • 参数:...paths (string[]):一个或多个路径片段的序列
  • 返回值:一个字符串,该字符串是绝对路径。

方法返回从两路径的相对路径

python 复制代码
path.relative(from, to)
  • 参数
    • from (str):起始路径。
    • to (str):目标路径。
  • 返回值:一个字符串,该字符串表示从fromto的相对路径。

连接一个或多个路径组件,返回一个合并后的路径。

os.path.join(path,*paths)
  • 参数
    • path (str) - 基础路径。
    • *paths (str) - 需要连接到基础路径的其他路径组件。
  • 返回值:返回合并后的路径

将路径分割为目录和文件名两部分

os.path.split(path)
  • 参数:path (str) - 要分割的路径。

  • 返回值:返回一个元组,包含目录和文件名两部分。

将路径分割为文件名和扩展名两部分

os.path.splitext(path)
  • 参数:path (str) - 要分割的路径。

  • 返回值:返回一个元组,包含文件名和扩展名两部分。

目录遍历

os.listdir 返回指定目录中的所有文件和目录的名称列表。它不会递归遍历子目录。

python 复制代码
os.listdir(path,dir_fd)
  • 参数
    • path (str, optional): 要列出内容的目录路径。如果未指定,默认使用当前工作目录。
    • dir_fd (optional): 如果提供,此路径相对于 dir_fd 指定的目录
  • 返回值:一个包含目录中所有文件和目录名的列表。

os.walk 生成目录树下的所有文件名,递归遍历目录中的所有子目录。它提供了遍历目录树的简单方法

python 复制代码
os.walk(top,topdown)
  • 参数
    • top (str): 要遍历的目录树的顶级目录路径
    • topdown (bool, optional): 如果为 True(默认值),则首先遍历顶级目录,否则首先遍历子目录。
  • 返回值:一个生成器,生成一个三元组 (root, dirs, files)
    • root (str): 当前正在遍历的目录的路径。
    • dirs (list): root 目录中子目录的名称列表。
    • files (list): root 目录中非目录的名称列表

示例


相关推荐
懒大王爱吃狼2 分钟前
Python绘制数据地图-MovingPandas
开发语言·python·信息可视化·python基础·python学习
数据小小爬虫5 分钟前
如何使用Python爬虫按关键字搜索AliExpress商品:代码示例与实践指南
开发语言·爬虫·python
martian66528 分钟前
第17篇:python进阶:详解数据分析与处理
开发语言·python
无码不欢的我31 分钟前
使用vscode在本地和远程服务器端运行和调试Python程序的方法总结
ide·vscode·python
五味香32 分钟前
Java学习,查找List最大最小值
android·java·开发语言·python·学习·golang·kotlin
金融OG39 分钟前
99.8 金融难点通俗解释:净资产收益率(ROE)
大数据·python·线性代数·机器学习·数学建模·金融·矩阵
fmdpenny1 小时前
Django的安装
后端·python·django
小爬菜1 小时前
Django学习笔记(启动项目)-03
前端·笔记·python·学习·django
陈钇钇1 小时前
持续升级《在线写python》小程序的功能,文章页增加一键复制功能,并自动去掉html标签
python·小程序·html