当前位置: 首页 > news >正文

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

这里写目录标题

    • 文件目录结构说明
    • 一、路径获取
      • 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')

相关文章:

  • K8s调度之污点与容忍
  • @SuppressWarnings使用-屏蔽一些无关紧要的警告
  • 算法leetcode|25. K 个一组翻转链表(rust重拳出击)
  • GEO芯片数据基本分析
  • Logoist - 适用于设计师以及初次使用者,快速制作精美 logo
  • 有趣的网站分享——福音戰士標題生成器
  • 现在的时代不是互联网时代的延续,因为其底层逻辑已经改变
  • 智能工厂的关键技术
  • SwiftUI获取子View的frame
  • C++-std:tuple元组的基本用法
  • 【SpringMVC】SpringMVC的入门
  • TensorFlow性能分析调研
  • 四、网络层(二)路由算法与路由选择协议
  • Shiro与SpringBoot整合
  • Netflix Eureka 2.0.0正式发布:借尸还魂还是虚晃一枪?
  • 3分钟搞清楚 JVM逃逸分析
  • 用维度概念来定义初级、中级、高级程序员
  • 脉冲神经网络(SNN)论文阅读(四)-----IJCAI-2022 多级发射方法的脉冲神经网络
  • 外行人如何通过学习软件测试转行IT
  • 线程池