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
目录
相关文章
|
11月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
759 0
|
11月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
1726 1
|
运维 Ubuntu 测试技术
阿里云 OS Colilot 使用方法及评测
本文介绍了OS Copilot的安装与功能测试。作为一位运维工程师,我在阿里云Ubuntu 24.04机器上成功安装并测试了OS Copilot的-t/-f/管道功能。测试结果显示,除了管道符识别存在一些问题外,OS Copilot在任务指令处理和系统巡检等方面表现出色,能够显著简化操作流程,提升工作效率。建议在未来版本中优化管道符识别,并谨慎引导用户执行不确定的命令。总体而言,OS Copilot是一个非常有用的运维工具,已在我的工作中发挥了积极作用。
390 15
|
弹性计算 运维 Ubuntu
阿里云 OS Colilot 使用方法及评测
作为一名后端研发工程师兼公司运维,我经常使用阿里云维护服务器和管理云服务。最近尝试了OS Copilot的-f/-t/管道功能 此外,我还测试了普通模式、自动模式、文件定义任务及命令解释功能。其中自动模式表现出色,而文件定义任务和默认英文解释则存在问题。总体而言,OS Copilot在某些方面显著提高了运维效率,但仍需改进。
|
12月前
|
安全 Python
告别 os.path 的繁琐:拥抱 Python 的 pathlib
告别 os.path 的繁琐:拥抱 Python 的 pathlib
666 6
|
Python
解决Python中AttributeError:'image'对象缺少属性'read_file'的问题策略。
通过上述策略综合考虑,您将能够定位问题并确定如何解决它。记住,Python社区很庞大,也很乐于帮助解决问题,因此不要害怕在求助时提供尽可能多的上下文和您已经尝试过的解决方案。
333 0
|
Python
Python教程:os 与 sys 模块详细用法
os 模块用于与操作系统交互,主要涉及夹操作、路径操作和其他操作。例如,`os.rename()` 重命名文件,`os.mkdir()` 创建文件夹,`os.path.abspath()` 获取文件绝对路径等。sys 模块则用于与 Python 解释器交互,常用功能如 `sys.path` 查看模块搜索路径,`sys.platform` 检测操作系统等。这些模块提供了丰富的工具,便于开发中处理系统和文件相关任务。
648 14
|
Python
解决Python报错:DataFrame对象没有concat属性的多种方法(解决方案汇总)
总的来说,解决“DataFrame对象没有concat属性”的错误的关键是理解concat函数应该如何正确使用,以及Pandas库提供了哪些其他的数据连接方法。希望这些方法能帮助你解决问题。记住,编程就像是解谜游戏,每一个错误都是一个谜题,解决它们需要耐心和细心。
694 15
|
物联网 Python
请问:如何使用python对物联网平台上设备的属性进行更改?
为验证项目可行性,本实验利用阿里云物联网平台创建设备并定义电流、电压两个整型属性。通过Python与平台交互,实现对设备属性的控制,确保后续项目的顺利进行。此过程涵盖设备连接、数据传输及属性调控等功能。
|
C语言 Python
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
515 2