博客
关于我
python中的os.path.dirname与os.path.dirname(__file__)的用法
阅读量:691 次
发布时间:2019-03-17

本文共 1218 字,大约阅读时间需要 4 分钟。

Python os.path.dirname 函数详解

在 Python 开发过程中,os.path dirname 函数是一个非常实用的工具。它能够有效地去除文件名,返回文件的完整路径。此外,该函数还可以用于处理文件路径,并获取文件的上层目录信息。在实际编程中,了解 dirname 函数的使用方法至关重要,能够帮助开发者更高效地处理文件路径问题。

dirname 功能说明

os.path.dirname(path) 的主要作用为:去除文件名,返回文件的父目录路径。该函数可以处理绝对路径和相对路径,输出结果也是基于输入路径的类型而定。

举例说明:

  • 对于路径 W:\Python_File\juan之购物车.py,执行 os.path.dirname((路径)) 将返回 W:\Python_File,去除了具体文件名 juan之购物车.py
  • 对于仅包含文件名的路径 W:\Python_File,调用 os.path.dirname((路径)) 会直接返回 W:\(表示根目录)。

二、os.path.dirname(__file__) 的实际应用

在实际项目开发中,使用 os.path.dirname(__file__) 可以帮助开发者快速获取文件的相对路径信息。该函数特别适用于以下两种场景:

(1) 全部使用完整路径运行脚本

当脚本以完整路径运行时(例如:python d:/pythonSrc/test/test.py),调用 print(os.path.dirname(__file__)) 将输出当前脚本的完整路径,具体为所在文件夹的路径。例如:

d:/pythonSrc/test/test.py输出结果:d:/pythonSrc/test

这种情况下,函数返回的是脚本所在文件夹的完整路径,便于开发者快速定位当前脚本的位置。

(2) 使用相对路径运行脚本

如果脚本以相对路径运行(例如:python test.py),则调用 print(os.path.dirname(__file__)) 将直接输出 "/" 或者空字符串。例如:

python test.py输出结果:/

这种情况下,函数返回的是当前工作目录的根目录路径。

(3) 混合使用完整路径和相对路径

在某些实际场景中,脚本可能由混合使用了完整路径和相对路径来执行。例如,用户可能在项目根目录下运行以下命令:

python -m myproject

此时,__file__ 将指向当前脚本的文件路径,调用 os.path.dirname(__file__) 将返回当前脚本所在文件夹的路径。

总结

综上所述,os.path.dirname(path) 是一个非常实用的工具,能够有效去除文件名并返回父目录路径。无论是处理绝对路径还是相对路径,该函数都能提供正确的路径信息。在实际编程中,合理利用 dirname 函数能够节省大量时间,提升开发效率。

转载地址:http://qjqhz.baihongyu.com/

你可能感兴趣的文章
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
查看>>