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

Python获取与处理文件路径/目录路径实例代码

文件目录结构说明

一、路径获取

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

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

1

2

3

importos

file_path=os.path.abspath(__file__)

print(file_path)

输出:

e:\Python\Path\python_path_test.py

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

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

1

2

3

importos

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

print(directory_path)

输出:

e:\Python\Path

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

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

1

2

3

importos

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

print(parent_directory_path)

输出:

e:\Python

1.3 获取当前文件名

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

1

2

3

importos

file_name=os.path.basename(__file__)

print(file_name)

输出:

python_path_test.py

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

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

1

2

3

4

5

6

7

importos

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()**判断路径是否存在。

1

2

3

4

importos

path="./data/data_file.txt"

is_exists=os.path.exists(path)

print(is_exists)

输出:

True

1

2

3

4

importos

path="./data/data.txt"

is_exists=os.path.exists(path)

print(is_exists)

输出:

False

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

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

1

2

3

4

importos

path="E:\Python\Path\data\data_file.txt"

is_exists=os.path.isabs(path)

print(is_exists)

输出:

True

1

2

3

4

importos

path="./data/data_file.txt"

is_exists=os.path.isabs(path)

print(is_exists)

输出:

False

2.3 判断路径是否为目录

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

1

2

3

4

importos

path="E:\Python\Path\data"

is_exists=os.path.isdir(path)

print(is_exists)

输出:

True

1

2

3

4

importos

path="E:\Python\Path\data\data_file.txt"

is_exists=os.path.isdir(path)

print(is_exists)

输出:

False

2.4 判断路径是否为文件

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

1

2

3

4

importos

path="E:\Python\Path\data\data_file.txt"

is_exists=os.path.isfile(path)

print(is_exists)

输出:

True

1

2

3

4

importos

path="E:\Python\Path\data"

is_exists=os.path.isfile(path)

print(is_exists)

输出:

False

三、路径处理

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

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

1

2

3

4

5

6

importos

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)。

1

2

3

4

importos

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)和文件路径。

1

2

3

4

importos

path=os.path.abspath(__file__)

result=os.path.splitdrive(path)

print(result)

输出:

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

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

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

1

2

3

4

importos

path=os.path.abspath(__file__)

result=os.path.splitext(path)

print(result)

输出:

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

附:python正确读取文件路径的三种解决方法

一、问题需求

日常用程序读取文件数据等时,常常会显示一些诸如文件路径不存在等错误信息。

二、问题原因

这类问题,在python中,主要是由于 “\”(反斜杠) 引起的。

因为在Windows系统中,使用 反斜杠(\) 作为文件路径的分隔符,但在python中,反斜杠(\) 会被标识为转义字符引起的。从而导致的程序报错。

三、解决办法

针对上述问题,常用的解决方法有如下三种。

以windows中的文件路径:“E:\CloudMusic\MV\demo.txt” 为例。

方法1 将路径中的单反斜杠替换为双反斜杠。如下所示:

“E:\CloudMusic\MV\demo.txt”

方法2 在路径前加r,使字符保持原始含义。 如下所示:

r"E:\CloudMusic\MV\demo.txt"

方法3 将反斜杠替换为正斜杠(/)。如下所示:

“E:/CloudMusic/MV/demo.txt”

根据自己的习惯,选择调整即可。

http://www.jsqmd.com/news/668405/

相关文章:

  • 步骤3的自动化版本
  • 手把手配置华为交换机VLAN:为移动IMS专线搭建安全私网(含SBC对接要点)
  • 蓝桥杯单片机CT107D开发板实战:手把手教你搞定第十二届省赛温度控制题(IAP15F2K61S2+Keil5)
  • 科研党福音:Zotero 6.0 内置PDF阅读器+翻译插件,打造一站式文献阅读与笔记系统
  • 从传输门到时序约束:深入解析D锁存器、D触发器及其关键时序参数
  • 昆明考级、比赛靠谱的美术机构推荐:选考级赛事培优班要规避什么问题 - 云南美术头条
  • bootstrap怎么修改模态框(Modal)背景遮罩层的颜色
  • 102-MIC最大信息系数回归预测模型(MATLAB实现)|特征筛选算法|含完整可运行代码
  • JavaScript 中的 setTimeout 是否依赖系统时钟?
  • QQ音乐加密文件解密完全指南:如何轻松将qmc格式转换为通用音频格式
  • 别再只盯着K-Means了!用sklearn的轮廓系数(silhouette_score)帮你选出最佳聚类算法
  • mysql执行SQL查询时结果不一致_检查事务隔离级别设置与幻读
  • 如何通过宝塔面板批量导出网站数据_使用宝塔命令行导出
  • 西门子PLC逻辑赛项备赛全攻略:从单梯到群控的WinCC通讯避坑指南
  • 深入理解 C++ 内存模型与对象底层机制:this 指针的秘密
  • 从频谱泄露到栅栏效应:深入浅出聊聊FFT分析里Fs和N那些‘坑’
  • 避坑指南:PDMS Pipeline Tool螺栓材料计算(E10050-E10087)常见错误分析与模型自检清单
  • Chroma 向量数据库指南
  • 从PLCopen到倍福实践:用TwinCAT3标准功能块(如MC_Power, MC_MoveAbsolute)搭建你的第一条产线伺服程序
  • MQ2烟雾传感器数据不准?可能是你的R0基准没测对!一个电位器引发的‘血案’
  • AGI如何真正理解“因为所以”?:从符号主义到神经因果的7层能力演进图谱
  • Golang如何做零拷贝优化_Golang零拷贝教程【进阶】
  • 别再为上传大文件发愁了!用SpringBoot+阿里云OSS轻松搞定秒传、断点续传与分片
  • 极域电子教室V6.0网络通信安全浅析:从学生端脱控到模拟教师端反控的实践与思考
  • 别再死记硬背欧拉公式了!用Python可视化平面图,5分钟搞懂n-m+r=2
  • 从竞速到花飞:如何根据应用场景选择穿越机机架尺寸与类型
  • 从Actor模型到实战:Skynet轻量级游戏服务器框架的设计哲学与核心机制
  • ISE开发板Flash烧录避坑指南:从bit文件到mcs文件生成全流程
  • SpringBoot+Vue遥感影像共享系统源码+论文
  • PHP怎么实现工厂模式_Factory模式编写指南【指南】