Python os.path 模块常见用法:路径拼接、目录操作与批量文件处理

 更新时间:2026年05月19日 09:46:22   作者:AZ-直到世界的尽头  
os.path 模块提供了跨平台处理路径的基础功能,本文通过实例说明其核心用法,包括路径拼接、目录创建、文件批量复制与重命名等,感兴趣的朋友一起看看吧

在日常 Python 开发中,文件和目录操作非常频繁。os.path 模块提供了跨平台处理路径的基础功能。本文通过实例说明其核心用法,包括路径拼接、目录创建、文件批量复制与重命名等。

一、路径拼接:os.path.join()

语法:

os.path.join(path1[, path2[, ...]])

返回值:多个路径拼接后的字符串。

注意:第一个绝对路径之前的参数会被忽略

示例:

import os
# 全部相对路径
print(os.path.join('/hello/', 'good/boy/', 'doiido'))
# 输出:/hello/good/boy/doiido
# 中间出现绝对路径
print(os.path.join('/hello/', '/good/boy/', 'doiido'))
# 输出:/good/boy/doiido   (/hello/ 被忽略)

这一特性在拼接用户输入或配置路径时需要留意。

二、分离文件名和路径

使用 os.path.basenameos.path.dirname

url = 'https://images0.cnblogs.com/i/311516/201403/020013141657112.png'
filename = os.path.basename(url)   # '020013141657112.png'
filepath = os.path.dirname(url)    # 'https://images0.cnblogs.com/i/311516/201403'

使用 os.path.split 同时获得两者:

parts = os.path.split('/home/user/data/file.txt')
# ('/home/user/data', 'file.txt')

三、安全创建目录

先判断目录是否存在,再创建(支持多级目录):

def mkdir(path):
    if not os.path.exists(path):
        os.makedirs(path)
        print("--- create new folder %s ---" % path)
    else:
        print("--- already have this folder! ---")

四、创建空文件并自动创建父目录

结合 mkdiros.path.split

def create_empty_file(path):
    dir, file = os.path.split(path)
    mkdir(dir)
    open(path, "w").close()

五、批量复制特定类型文件

递归遍历源目录,将指定扩展名的文件复制到目标目录:

import shutil
def cp_rawdata_snp_2_plate_snp_path(path, new_path):
    for root, dirs, files in os.walk(path):
        for file in files:
            if file[-3:].lower() in ('jpg', 'png'):
                src = os.path.join(root, file)
                dst = os.path.join(new_path, file)
                shutil.copy(src, dst)

六、批量重命名文件

根据映射字典修改文件名:

def rename_gtc_barcode():
    barcode_map = {"2012333_r1l2": "111-1214-1232"}
    gtc_path = config["dir.gtc_dir_path"]
    for i in os.listdir(gtc_path):
        if not i.endswith(".gtc"):
            continue
        oldname = os.path.join(gtc_path, i)
        newname = os.path.join(gtc_path, barcode_map[i.replace(".gtc", "")] + ".vcf")
        os.rename(oldname, newname)
        print(oldname, '======>', newname)

七、获取当前目录、上级目录等

import os
# 当前目录
print(os.getcwd())
print(os.path.abspath(os.path.dirname(__file__)))
# 上级目录
print(os.path.abspath(os.path.dirname(os.getcwd())))
print(os.path.abspath(os.path.join(os.getcwd(), "..")))
# 上上级目录
print(os.path.abspath(os.path.join(os.getcwd(), "../..")))

八、常用 os.path 方法速查

方法说明
os.path.abspath(path)返回绝对路径
os.path.basename(path)返回文件名
os.path.dirname(path)返回目录路径
os.path.exists(path)路径是否存在
os.path.isfile(path)是否为文件
os.path.isdir(path)是否为目录
os.path.getsize(path)文件大小(字节)
os.path.splitext(path)分离文件名与扩展名

九、注意事项

  1. 路径分隔符:Windows 为 \,Linux/macOS 为 /,应始终使用 os.path.join 拼接。
  2. 相对/绝对路径:不确定时先用 os.path.abspath 转换。
  3. 操作前检查:删除或修改文件前建议用 os.path.exists 判断。

以上是 os.path 模块在实际开发中的常见用法。掌握这些函数可以有效简化文件系统相关的代码,并提高跨平台兼容性。

到此这篇关于Python os.path 模块常见用法:路径拼接、目录操作与批量文件处理的文章就介绍到这了,更多相关Python os.path 模块用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python手搓一个生产级限流器

    使用Python手搓一个生产级限流器

    这篇文章主要为大家详细介绍了三种生产级限流算法的Python实现,即令牌桶,漏桶和滑动窗口,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2026-02-02
  • 利用Python如何画一颗心、小人发射爱心

    利用Python如何画一颗心、小人发射爱心

    这篇文章主要给大家介绍了关于利用Python如何画一颗心、小人发射爱心的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 详解用 python-docx 创建浮动图片

    详解用 python-docx 创建浮动图片

    这篇文章主要介绍了详解用 python-docx 创建浮动图片,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Python跨文件全局变量的实现方法示例

    Python跨文件全局变量的实现方法示例

    我们在使用Python编写应用的时候,有时候会遇到多个文件之间传递同一个全局变量的情况。所以下面这篇文章主要给大家介绍了关于Python跨文件全局变量的实现方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-12-12
  • 解析Python 偏函数用法全方位实现

    解析Python 偏函数用法全方位实现

    这篇文章主要介绍了解析Python 偏函数用法全方位实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-06-06
  • Windows下用py2exe将Python程序打包成exe程序的教程

    Windows下用py2exe将Python程序打包成exe程序的教程

    这篇文章主要介绍了Windows下用py2exe将Python程序打包成exe程序的教程,文中主要针对Python3.x版本进行说明,需要的朋友可以参考下
    2015-04-04
  • Python Numpy中ndarray的常见操作

    Python Numpy中ndarray的常见操作

    这篇文章主要介绍了Python Numpy中ndarray的常见操作,NumPy是Python的一种开源的数值计算扩展,更多详细内容需要的朋友可以参考一下
    2022-07-07
  • python实现杨辉三角思路

    python实现杨辉三角思路

    本文给大家分享的是作者使用python实现杨辉三角的思路,非常的实用,有需要的小伙伴可以参考下
    2017-07-07
  • Python之父谈Python的未来形式

    Python之父谈Python的未来形式

    这篇文章主要介绍了Python之父谈Python的未来,需要的朋友可以参考下
    2016-07-07
  • Numpy之random.randint产生随机整数方式

    Numpy之random.randint产生随机整数方式

    这篇文章主要介绍了Numpy之random.randint产生随机整数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12

最新评论