Python获取与处理文件路径/目录路径

news2025/1/15 6:45:59

这里写目录标题

    • 文件目录结构说明
    • 一、路径获取
      • 1.1 获取当前文件的绝对路径
      • 1.2.1 获取当前文件的所在目录
      • 1.2.2 获取当前文件的所在目录的上一级目录
      • 1.3 获取当前文件名
      • 1.4 获取当前文件对于基准路径的相对路径
    • 二、路径判断
      • 2.1 判断路径是否存在
      • 2.2 判断路径是否为绝对路径
      • 2.3 判断路径是否为目录
      • 2.4 判断路径是否为文件
    • 三、路径处理
      • 3.1 把多个目录/文件名合并(连接)为一个路径
      • 3.2 把路径分割为文件所在目录路径(dirname)和文件名(basename)
      • 3.3 把路径分割为驱动器名(Windows操作系统)和文件路径
      • 3.4 把路径分割为文件路径和文件扩展名

文件目录结构说明

在这里插入图片描述

一、路径获取

1.1 获取当前文件的绝对路径

使用**os.path.abspath()**获取当前文件的绝对路径。

import os
file_path = os.path.abspath(__file__)
print(file_path)

输出:

e:\Python\Path\python_path_test.py

1.2.1 获取当前文件的所在目录

使用**os.path.dirname()**获取当前文件的所在目录。

import os
directory_path = os.path.dirname(os.path.abspath(__file__))
print(directory_path)

输出:

e:\Python\Path

1.2.2 获取当前文件的所在目录的上一级目录

使用多个**os.path.dirname()**嵌套以获取当前文件的所在目录的上一级目录。

import os
parent_directory_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(parent_directory_path)

输出:

e:\Python

1.3 获取当前文件名

使用**os.path.basename()**获取当前文件的所在目录。

import os
file_name = os.path.basename(__file__)
print(file_name)

输出:

python_path_test.py

1.4 获取当前文件对于基准路径的相对路径

使用**os.path.relpath(file_path, base_path)**获取当前文件对于基准路径的相对路径。

import os
file_path = os.path.abspath(__file__) #获取当前文件的绝对路径
base_path = "E:\Python" #设置基准路径(计算相对路径的起始路径)
relative_path = os.path.relpath(file_path, base_path) #计算从基准路径开始的相对路径
print("Absolute Path: " + file_path)
print("Base Path: " + base_path)
print("Relative Path: " + relative_path)

输出:

Absolute Path: e:\Python\Path\python_path_test.py
Base Path: E:\Python
Relative Path: Path\python_path_test.py

二、路径判断

2.1 判断路径是否存在

使用**os.path.exists()**判断路径是否存在。

import os
path = "./data/data_file.txt"
is_exists = os.path.exists(path)
print(is_exists)

输出:

True
import os
path = "./data/data.txt"
is_exists = os.path.exists(path)
print(is_exists)

输出:

False

2.2 判断路径是否为绝对路径

使用**os.path.isabs()**判断路径是否为绝对路径。

import os
path = "E:\Python\Path\data\data_file.txt"
is_exists = os.path.isabs(path)
print(is_exists)

输出:

True
import os
path = "./data/data_file.txt"
is_exists = os.path.isabs(path)
print(is_exists)

输出:

False

2.3 判断路径是否为目录

使用**os.path.isdir()**判断路径是否为目录。

import os
path = "E:\Python\Path\data"
is_exists = os.path.isdir(path)
print(is_exists)

输出:

True
import os
path = "E:\Python\Path\data\data_file.txt"
is_exists = os.path.isdir(path)
print(is_exists)

输出:

False

2.4 判断路径是否为文件

使用**os.path.isfile()**判断路径是否为文件。

import os
path = "E:\Python\Path\data\data_file.txt"
is_exists = os.path.isfile(path)
print(is_exists)

输出:

True
import os
path = "E:\Python\Path\data"
is_exists = os.path.isfile(path)
print(is_exists)

输出:

False

三、路径处理

3.1 把多个目录/文件名合并(连接)为一个路径

使用**os.path.join(path1, path2, ···)**把多个目录/文件名合并(连接)为一个路径。

import os
path1 = "E:\Python"
path2 = "Path\data"
path3 = "data_file.txt"
path = os.path.join(path1, path2, path3)
print(path)

输出:

E:\Python\Path\data\data_file.txt

3.2 把路径分割为文件所在目录路径(dirname)和文件名(basename)

使用**os.path.split()**把路径分割为文件所在目录路径(dirname)和文件名(basename)。

import os
path = os.path.abspath(__file__)
result = os.path.split(path)
print(result)

输出:

('e:\\Python\\Path', 'python_path_test.py')

3.3 把路径分割为驱动器名(Windows操作系统)和文件路径

使用**os.path.splitdrive()**把路径分割为驱动器名(Windows)和文件路径。

import os
path = os.path.abspath(__file__)
result = os.path.splitdrive(path)
print(result)

输出:

('e:', '\\Python\\Path\\python_path_test.py')

3.4 把路径分割为文件路径和文件扩展名

使用**os.path.splitext()**把路径分割为文件路径和文件扩展名。

import os
path = os.path.abspath(__file__)
result = os.path.splitext(path)
print(result)

输出:

('e:\\Python\\Path\\python_path_test', '.py')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/110089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】matplotlib.axes.Axes.pie()实例讲解

目录:matplotlib.axes.Axes.pie函数实力讲解一、前言二、matplotlib.axes.Axes.pie()函数三、代码示例四、get_cmap函数一、前言 本文章向大家介绍Python matplotlib.axes.Axes.pie()实例讲解,主要分析其语法、参数、返回值和注意事项,并结合…

WorkPlus助力中交四航局打造数字化管理新模式,释放企业生产力

企业简介 中交四航局正式创立于1951年,集团主要从事海内外港口、公路、桥梁、铁路、市政工程、水利工程等大型基础设施建设,以及相关的投资、勘察设计、科研、工业造船和房地产业务。始终致力于“让世界更畅通,让城市更宜居,让生…

logger记录在控制台显示,但是在日志输出文件中不显示问题排查

场景: 代码中存在使用logger.info输出数据到指定的文件中,然后用logstash去收集需要的数据插入到es中。 现象: logger.info输出的记录打断点在控制台上显示,但是在配置的日志输出文件中却找不到日志输出的内容。 log4j配置 如下…

ELK搜索学习笔记--Day1

ELK搜索学习笔记–Day1 1. 课程简介 1.1 课程内容 ELK是包含但不限于Elasticsearch(简称es)、Logstash、Kibana 三个开源软件的组成的一个整体。这三个软件合成ELK。是用于数据抽取(Logstash)、搜索分析&#xff08…

Freemodbus启动流程分析

近项目有用到modbus协议,于是在网上找了些资料成功将freemodbus移植到m3,由于移植过程较简单,网上教程也很多,这里我们就不再赘述.我用到的freemodbus版本是V1.5,下面附上新的源码下载地址:http://www.freemodbus.org/index.php?idx5 下面开始分析下freemodbus得启动流程,老规…

Android设计模式详解之解释器模式

前言 解释器模式是一种使用较少的行为型模式; 提供了一种解释语言的语法或表达式的方式,通过该接口解释一个特定的上下文。 定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表…

MySQL面试常问问题(高可用/性能 + 运维) —— 赶快收藏

1.数据库读写分离了解吗? 读写分离的基本原理是将数据库读写操作分散到不同的节点上,下面是基本架构图: 读写分离 读写分离的基本实现是: 数据库服务器搭建主从集群,一主一从、一主多从都可以。 数据库主机负责读写操作&#x…

洛谷——P1573 栈的操作

文章目录栈的操作题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示AC代码栈的操作 题目描述 现在有四个栈,其中前三个为空,第四个栈从栈顶到栈底分别为 1,2,3,⋯,n1,2,3,\cdots ,n1,2,3,⋯,n。每一个栈只支持一种操作:弹出并压入…

当云原生成为一种显学,对象存储和数据湖如何顺势而为

前言: 已经成为数字化时代显学的云原生并非单项技术,而是一种重塑了软件开发和和业务运行应用的设计思想,是一套技术体系和方法论。云原生“Cloud Native”的Cloud 是指云平台,Native则表示应用程序从设计之初即使用云环境、天生…

MyBatis学习 | SQL映射文件

文章目录一、简介二、insert、update和delete标签2.1 关于增删改2.2 获取自增主键的值三、参数处理3.1 获取不同形式的参数3.1.1 获取单个参数3.1.2 获取多个参数3.2 #{Key}3.2.1 #{}🆚${}3.2.2 #{}中设置参数规则四、select标签4.1 select标签的主要属性4.2 关于返…

即时通讯音视频开发视频编解码理论

从信息论的观点来看,描述信源的数据是信息和数据冗余之和,即:数据信息数据冗余。数据冗余有许多种,如空间冗余、时间冗余、视觉冗余、统计冗余等。将图像作为一个信源,视频压缩编码的实质是减少图像中的冗余。 视频为何…

2步就能实现给视频去色并裁剪画面

看到很多小伙伴还不知道大量的视频怎么实现批量的进行去色处理,并且裁剪视频画面大小的方法,小编今天就来教大家一个可以快速操作的简单方法,感兴趣的朋友们快进来瞧瞧吧! 首先我们来看看用这个方法操作剪辑出来的效果&#xff0c…

预焙阳极行业现状:供给格局边际将改善 “双碳”下优质产品迎新机遇

预焙阳极属于碳素制品,是电解铝生产过程中不可缺少的大宗原材料。从用途来看,预焙阳极仅用作电解铝过程中电解槽的阳极材料,既作为导体,又参与电化学反应而产生消耗,预焙阳极的品质会对原铝的质量产生重要影响。 一、预…

免费PDF阅读器有哪些? 14款强烈推荐的PDF阅读器!

即使经过这么多年,PDF 仍然是最受欢迎的阅读格式之一。从阅读电子书或填写在线表格到创建用户手册,PF 格式仍然是最受欢迎的阅读方式。虽然现在的网络浏览器已经配备了基本的 PDF 阅读功能,但您仍然需要单独下载 PDF 阅读器才能实现填写表格、…

「另类」图达通,还缺一个二次进化

作者 | 张祥威 编辑 | 于婷中国的激光雷达公司早期都很幸运,禾赛、速腾聚创和图达通三家,分别遇到了自己的伯乐——蔚小理。 比较特别的是图达通,它与蔚来的合作之紧密,程度远超另外两家,堪称命中贵人。 根据图达通联合…

p5.js 光速入门

本文简介 点赞 关注 收藏 学会了 本文的目标是和各位工友一起有序的快速上手 p5.js ,会讲解 p5.js 的基础用法。 本文会涉及到的内容包括: 项目搭建p5.js 基础2D图形文字图形样式设置图片事件(交互相关的)基础动画 其中还会…

Ubuntu四轮小车仿真教程gazebo

主要实现内容为在ROS环境下基于Gazebo仿真软件创建一个四轮小车,并实现小车的控制,如下图所示,接下来教程将会进行详细解释。 1.创建工作空间 创建ROS工作空间,命名为SmartCar,并在该工作空间中创建src文件夹。 mkdi…

数字三渔冲:打造美丽乡村新范式

年初,中共中央 国务院关于做好 2022 年全面推进乡村振兴重点工作的意见中提到,要大力推进数字乡村建设,以数字技术赋能乡村公共服务。沿着乡村振兴的战略导向,并紧随筑堡工程共同缔造号召,长阳三渔冲村引入了 SENSORO …

[ Linux ] 死锁以及如何避免死锁

目录 1.什么是死锁? 死锁 2.模拟死锁情况 3.死锁四个必要条件 4.避免死锁的方法 5.避免死锁的算法 银行家算法(了解为主) 1.什么是死锁? 死锁 死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申…

Android入门第54天-SQLite中的Transaction

简介 上一篇我们完整的介绍了SQLite在Android中如何使用,今天我们要来讲一下“Transaction“即事务这个问题。 我们经常在编程中会碰到这样的业务场景: 没问题一系列有业务关联性表操作的数据一起提交;事务中只要有一步有问题,那…