今天小编给大家分享一下Python怎么获取与处理文件路径/目录路径的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
文件目录结构说明
一、路径获取
1.1 获取当前文件的绝对路径
使用**os.path.abspath()**获取当前文件的绝对路径。
import os file_path = os.path.abspath(__file__) print(file_path)
输出:
e:PythonPathpython_path_test.py
1.2.1 获取当前文件的所在目录
使用**os.path.dirname()**获取当前文件的所在目录。
import os directory_path = os.path.dirname(os.path.abspath(__file__)) print(directory_path)
输出:
e:PythonPath
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:PythonPathpython_path_test.py
Base Path: E:Python
Relative Path: Pathpython_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:PythonPathdatadata_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:PythonPathdata" is_exists = os.path.isdir(path) print(is_exists)
输出:
True
import os path = "E:PythonPathdatadata_file.txt" is_exists = os.path.isdir(path) print(is_exists)
输出:
False
2.4 判断路径是否为文件
使用**os.path.isfile()**判断路径是否为文件。
import os path = "E:PythonPathdatadata_file.txt" is_exists = os.path.isfile(path) print(is_exists)
输出:
True
import os path = "E:PythonPathdata" is_exists = os.path.isfile(path) print(is_exists)
输出:
False
三、路径处理
3.1 把多个目录/文件名合并(连接)为一个路径
使用**os.path.join(path2, path3, ···)**把多个目录/文件名合并(连接)为一个路径。
import os path2 = "E:Python" path3 = "Pathdata" path4 = "data_file.txt" path = os.path.join(path2, path3, path4) print(path)
输出:
E:PythonPathdatadata_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:PythonPath', '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:', 'PythonPathpython_path_test.py')
3.4 把路径分割为文件路径和文件扩展名
使用**os.path.splitext()**把路径分割为文件路径和文件扩展名。
import os path = os.path.abspath(__file__) result = os.path.splitext(path) print(result)
输出:
('e:PythonPathpython_path_test', '.py')
附:python正确读取文件路径的三种解决方法
一、问题需求
日常用程序读取文件数据等时,常常会显示一些诸如文件路径不存在等错误信息。
二、问题原因
这类问题,在python中,主要是由于 “”(反斜杠) 引起的。
因为在Windows系统中,使用 反斜杠() 作为文件路径的分隔符,但在python中,反斜杠() 会被标识为转义字符引起的。从而导致的程序报错。
三、解决办法
针对上述问题,常用的解决方法有如下三种。
以windows中的文件路径:“E:CloudMusicMVdemo.txt” 为例。
方法1 将路径中的单反斜杠替换为双反斜杠。如下所示:
“E:CloudMusicMVdemo.txt”
方法2 在路径前加r,使字符保持原始含义。 如下所示:
r"E:CloudMusicMVdemo.txt"
方法3 将反斜杠替换为正斜杠(/)。如下所示:
“E:/CloudMusic/MV/demo.txt”