Python 2.x 中如何使用os.path模块获取文件路径的各个部分

Python 2.x 中如何使用os.path模块获取文件路径的各个部分

引言

Python 的 os.path 模块是用来处理文件路径相关的操作。文件路径分为绝对路径和相对路径,绝对路径表示从根节点开始一直到目标文件的完整路径,相对路径表示文件所在目录相对于当前工作目录的路径。在使用 Python 处理文件时,经常需要获取文件路径的各个部分,例如文件名、扩展名、目录路径、绝对路径等信息。本文将介绍如何使用 os.path 模块来获取文件路径的各个部分。

获取文件名

要获取文件路径中的文件名,可以使用 os.path 模块中的 basename 函数。该函数会返回路径中的最后一个元素,即文件名。

import os.path

path = '/home/user/file.txt'

filename = os.path.basename(path)

print(filename) # file.txt

在上面的代码中,首先导入了 os.path 模块,然后定义了一个路径变量 path。接着,使用 os.path.basename 函数获取路径中的文件名,并将结果赋值给变量 filename。最后,在控制台输出了文件名。

获取目录路径

要获取文件路径中的目录路径,可以使用 os.path 模块中的 dirname 函数。该函数会返回路径中除了最后一个元素以外的部分,即目录路径。

import os.path

path = '/home/user/file.txt'

dirname = os.path.dirname(path)

print(dirname) # /home/user

在上面的代码中,首先导入了 os.path 模块,然后定义了一个路径变量 path。接着,使用 os.path.dirname 函数获取路径中的目录路径,并将结果赋值给变量 dirname。最后,在控制台输出了目录路径。

获取文件扩展名

要获取文件路径中的扩展名,可以使用 os.path 模块中的 splitext 函数。该函数会将路径分割成文件名和扩展名的两个部分,并返回一个元组,元组的第二个元素即为扩展名。

import os.path

path = '/home/user/file.txt'

extension = os.path.splitext(path)[1]

print(extension) # .txt

在上面的代码中,首先导入了 os.path 模块,然后定义了一个路径变量 path。接着,使用 os.path.splitext 函数将路径分割成文件名和扩展名的两个部分,并取得元组的第二个元素,即扩展名。最后,在控制台输出了扩展名。

获取路径的所有部分

要获取文件路径的所有部分,可以使用 os.path 模块中的 split 函数。该函数会将路径按照目录分隔符拆分成一个列表,列表中的每个元素即为路径中的一个部分。

import os.path

path = '/home/user/file.txt'

parts = os.path.split(path)

print(parts) # ('/home/user', 'file.txt')

在上面的代码中,首先导入了 os.path 模块,然后定义了一个路径变量 path。接着,使用 os.path.split 函数将路径按照目录分隔符拆分成一个元组,元组的两个元素分别为目录路径和文件名。最后,在控制台输出了路径的两个部分。

获取路径的绝对路径

要获取路径的绝对路径,可以使用 os.path 模块中的 abspath 函数。该函数会返回路径的绝对路径,即从根节点开始的完整路径。

import os.path

path = 'file.txt'

abs_path = os.path.abspath(path)

print(abs_path) # /home/user/file.txt

在上面的代码中,首先导入了 os.path 模块,然后定义了一个路径变量 path。接着,使用 os.path.abspath 函数获取路径的绝对路径,并将结果赋值给变量 abs_path。最后,在控制台输出了绝对路径。

结语

本文介绍了如何使用 os.path 模块来获取文件路径的各个部分。包括文件名、目录路径、扩展名、所有部分以及绝对路径等信息。这些操作都比较常见,在处理文件时会经常用到。读者可以根据自己的需求,选择合适的函数来获取文件路径的各个部分。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签