python中os.path常用属性和部分使用方法

简介: python中os.path常用属性和部分使用方法

1 os.path 模块常用的属性和方法

方法 说明
os.path.abspath(path) 返回 path 的绝对路径。
os.path.basename(path) 获取 path 路径的基本名称,即 path 末尾到最后一个斜杠的位置之间的字符串。
os.path.commonprefix(list) 返回 list(多个路径)中,所有 path 共有的最长的路径。
os.path.dirname(path) 返回 path 路径中的目录部分。
os.path.exists(path) 判断 path 对应的文件是否存在,如果存在,返回 True;反之,返回 False。和 lexists() 的区别在于,exists()会自动判断失效的文件链接(类似 Windows 系统中文件的快捷方式),而 lexists() 却不会。
os.path.lexists(path) 判断路径是否存在,如果存在,则返回 True;反之,返回 False。
os.path.expanduser(path) 把 path 中包含的 "~" 和 "~user" 转换成用户目录。
os.path.expandvars(path) 根据环境变量的值替换 path 中包含的 "$name" 和 "${name}"。
os.path.getatime(path) 返回 path 所指文件的最近访问时间(浮点型秒数)。
os.path.getmtime(path) 返回文件的最近修改时间(单位为秒)。
os.path.getctime(path) 返回文件的创建时间(单位为秒,自 1970 年 1 月 1 日起(又称 Unix 时间))。
os.path.getsize(path) 返回文件大小,如果文件不存在就返回错误。
os.path.isabs(path) 判断是否为绝对路径。
os.path.isfile(path) 判断路径是否为文件。
os.path.isdir(path) 判断路径是否为目录。
os.path.islink(path) 判断路径是否为链接文件(类似 Windows 系统中的快捷方式)。
os.path.ismount(path) 判断路径是否为挂载点。
os.path.join(path1[, path2[, ...]]) 把目录和文件名合成一个路径。
os.path.normcase(path) 转换 path 的大小写和斜杠。
os.path.normpath(path) 规范 path 字符串形式。
os.path.realpath(path) 返回 path 的真实路径。
os.path.relpath(path[, start]) 从 start 开始计算相对路径。
os.path.samefile(path1, path2) 判断目录或文件是否相同。
os.path.sameopenfile(fp1, fp2) 判断 fp1 和 fp2 是否指向同一文件。
os.path.samestat(stat1, stat2) 判断 stat1 和 stat2 是否指向同一个文件。
os.path.split(path) 把路径分割成 dirname 和 basename,返回一个元组。
os.path.splitdrive(path) 一般用在 windows 下,返回驱动器名和路径组成的元组。
os.path.splitext(path) 分割路径,返回路径名和文件扩展名的元组。
os.path.splitunc(path) 把路径分割为加载点与文件。
os.path.walk(path, visit, arg) 遍历path,进入每个目录都调用 visit 函数,visit 函数必须有 3 个参数(arg, dirname, names),dirname 表示当前目录的目录名,names 代表当前目录下的所有文件名,args 则为 walk 的第三个参数。
os.path.supports_unicode_filenames 设置是否可以将任意 Unicode 字符串用作文件名。

2 简单示例

  • 在一个工程或者项目中用到的会多一点,比如需要得到某个文件或者配置文件的路径等。
  • 这里示例为:C:\Users\Administrator\Desktop\test_os_path.py
# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2021/7/10 18:23
# 文件名称:test_os_path.py
# 作用:os.path使用

import os

class StudyOS:

    def os_path(self):
        os_path = os.path.abspath(__file__)
        print(f"1、当前执行文件的路径为:{os_path}")

    def os_path_d(self):
        os_path = os.path.dirname(os.path.abspath(__file__))
        print(f"2、当前执行文件的目录路径为:{os_path}")

    def os_path_dd(self):
        os_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
        print(f"3、当前执行文件的目录路径的目录路径为:{os_path}")

    def os_path_b(self):
        os_path = os.path.basename(__file__)
        print(f"4、当前执行文件的名称为:{os_path}")

    def os_path_e(self):
        os_path = os.path.exists(__file__)
        print(f"5、当前执行文件是否存在:{os_path}")
    
if __name__ == "__main__":
    mpath = StudyOS()

    mpath.os_path()
    mpath.os_path_d()
    mpath.os_path_dd()
    mpath.os_path_b()
    mpath.os_path_e()

输出为:

========== RESTART: C:/Users/Administrator/Desktop/test_os_path.py ==========
1、当前执行文件的路径为:C:\Users\Administrator\Desktop\test_os_path.py
2、当前执行文件的目录路径为:C:\Users\Administrator\Desktop
3、当前执行文件的目录路径的目录路径为:C:\Users\Administrator
4、当前执行文件的名称为:test_os_path.py
5、当前执行文件是否存在:True

3 项目中扩展

  • 比如我们有这么一个项目结构;

在这里插入图片描述

  • config.py中是我们的配置信息;
  • 该工程的绝对路径为:F:\Automated-InterfaceTest-Pytest-demo
  • 项目根目录获取:
# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2021/7/10 18:10
# 文件名称:config.py
# 作用:配置文件

# =================== 项目根目录 ===================
BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_PATH1 = os.path.dirname(os.path.abspath(__file__))
BASE_PATH2 = os.path.abspath(__file__)

print(f"项目根目录路径为:{BASE_PATH}")
print(f"当前执行脚本的目录路径为:{BASE_PATH1}")
print(f"当前执行脚本的路径为:{BASE_PATH2}")

输出为:

项目根目录路径为:F:\Automated-InterfaceTest-Pytest-demo
当前执行脚本的目录路径为:F:\Automated-InterfaceTest-Pytest-demo\config
当前执行脚本的路径为:F:\Automated-InterfaceTest-Pytest-demo\config\config.py
  • 接口文档.xls的路径
EXCEL_FILE = os.path.join(BASE_PATH, "excel", "接口文档.xls")  # 接口文档的目录
print(f"接口文档的路径:{EXCEL_FILE}")

输出为:

接口文档的路径:F:\Automated-InterfaceTest-Pytest-demo\excel\接口文档.xls
目录
相关文章
|
1月前
|
缓存 Java Python
python-静态方法staticmethod、类方法classmethod、属性方法property_python staticmethod类内使用(1)
python-静态方法staticmethod、类方法classmethod、属性方法property_python staticmethod类内使用(1)
|
2天前
|
Python
Python的`os`模块核心功能概述:通过`os.getcwd()`获取
【6月更文挑战第23天】Python的`os`模块核心功能概述:通过`os.getcwd()`获取、`os.chdir()`改变工作目录;使用`os.mkdir()`, `os.makedirs()`创建目录,`os.rmdir()`, `os.removedirs()`删除;`os.rename()`, `os.renames()`重命名文件或目录;`os.remove()`删除文件;`os.listdir()`列出目录内容;`os.path.exists()`, `os.path.isfile()`, `os.path.isdir()`检查路径;`os.stat()`获取文件属性。
10 4
|
6天前
|
Python
Python中使用os库管理环境变量
在Python中,可以使用os库来管理操作系统的环境变量。通过os.environ对象,我们可以获取、修改和删除环境变量的值。
14 3
|
4天前
|
定位技术 Python
Python的try、except异常处理模块使用方法
所以,我们就解决了由于可能具有的arcpy.ExecuteError异常而导致的程序中断问题;大家在实际使用时,按照自己程序中可能出现的报错类,对本文出现的arcpy.ExecuteError异常类加以修改即可。
|
6天前
|
存储 程序员 Python
Python类属性与实例属性详解
Python 中区分类属性和实例属性的设计是为了满足不同的需求和使用场景。这种区分使得代码更加灵活、清晰,并且能够提供更好的封装性和可维护性。类属性用于表示与整个类相关的数据,而实例属性则用于表示每个实例的特定信息。这样,我们可以将关注点分离开来,使得代码更易于理解、维护和扩展。在实际应用中,我们可以根据具体的情况,选择适当的属性类型来组织和管理代码。
11 1
|
6天前
|
存储 搜索推荐 Python
【随手记】python语法:类属性和实例属性
【随手记】python语法:类属性和实例属性
22 1
|
6天前
|
Unix Shell Python
Python教程:开箱即用的Python os模块知识
注:文末有福利小工具源码 Python 的 os 模块提供了许多接口用于与操作系统进行交互,包括文件操作、目录操作、路径操作、环境变量操作、系统信息获取等
16 1
|
9天前
|
存储 Python
Python成员属性的内存特性与底层内存优化方案
这篇博客主要分享一下python成员属性的内存特性,也就是python底层节约内存的优化方案
|
19天前
|
Python
Python中访问不存在的属性
【6月更文挑战第4天】
16 5
|
20天前
|
Python
Python尝试访问不存在的属性或方法
【6月更文挑战第2天】
13 3

热门文章

最新文章