【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 目录中非目录的名称列表

示例


相关推荐
思则变1 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
漫谈网络1 小时前
WebSocket 在前后端的完整使用流程
javascript·python·websocket
try2find3 小时前
安装llama-cpp-python踩坑记
开发语言·python·llama
博观而约取4 小时前
Django ORM 1. 创建模型(Model)
数据库·python·django
精灵vector5 小时前
构建专家级SQL Agent交互
python·aigc·ai编程
Zonda要好好学习5 小时前
Python入门Day2
开发语言·python
Vertira6 小时前
pdf 合并 python实现(已解决)
前端·python·pdf
太凉6 小时前
Python之 sorted() 函数的基本语法
python
项目題供诗6 小时前
黑马python(二十四)
开发语言·python
晓13136 小时前
OpenCV篇——项目(二)OCR文档扫描
人工智能·python·opencv·pycharm·ocr