Python 截取路径

在编程中,我们经常需要操作文件路径。Python提供了一些内置的方法,可以帮助我们截取和操作文件路径。本文将介绍几种常见的方法以及如何使用它们。

os模块

Python的os模块提供了一些用于操作文件和目录的方法。以下是一些常用的方法来截取文件路径:

1. os.path.dirname(path)

os.path.dirname()方法返回指定路径的目录名。它会自动去掉路径中的文件名部分。例如,如果我们有一个路径/home/user/test/file.txt,调用os.path.dirname()会返回/home/user/test

import os

path = "/home/user/test/file.txt"
dirname = os.path.dirname(path)
print(dirname)  # 输出: /home/user/test

2. os.path.basename(path)

os.path.basename()方法返回指定路径的文件名。它会自动去掉路径中的目录部分。例如,如果我们有一个路径/home/user/test/file.txt,调用os.path.basename()会返回file.txt

import os

path = "/home/user/test/file.txt"
basename = os.path.basename(path)
print(basename)  # 输出: file.txt

3. os.path.split(path)

os.path.split()方法返回一个元组,其中包含指定路径的目录名和文件名。它等效于同时调用os.path.dirname()os.path.basename()。例如,如果我们有一个路径/home/user/test/file.txt,调用os.path.split()会返回('/home/user/test', 'file.txt')

import os

path = "/home/user/test/file.txt"
dirname, basename = os.path.split(path)
print(dirname)  # 输出: /home/user/test
print(basename)  # 输出: file.txt

4. os.path.splitext(path)

os.path.splitext()方法返回一个元组,其中包含指定路径的文件名和文件扩展名。它会将路径中的文件扩展名与文件名分开。例如,如果我们有一个路径/home/user/test/file.txt,调用os.path.splitext()会返回('/home/user/test/file', '.txt')

import os

path = "/home/user/test/file.txt"
filename, extension = os.path.splitext(path)
print(filename)  # 输出: /home/user/test/file
print(extension)  # 输出: .txt

pathlib模块

Python 3中引入了pathlib模块,它提供了一种更现代和面向对象的方式来处理文件路径。以下是使用pathlib模块截取文件路径的几种方法:

1. Path.parent

Path.parent属性返回指定路径的父目录。它会自动去掉路径中的文件名部分。例如,如果我们有一个路径/home/user/test/file.txt,调用Path.parent会返回/home/user/test

from pathlib import Path

path = Path("/home/user/test/file.txt")
parent = path.parent
print(parent)  # 输出: /home/user/test

2. Path.name

Path.name属性返回指定路径的文件名。它会自动去掉路径中的目录部分。例如,如果我们有一个路径/home/user/test/file.txt,调用Path.name会返回file.txt

from pathlib import Path

path = Path("/home/user/test/file.txt")
name = path.name
print(name)  # 输出: file.txt

3. Path.parts

Path.parts属性返回一个元组,其中包含指定路径的目录名和文件名。例如,如果我们有一个路径/home/user/test/file.txt,调用Path.parts会返回('/home', 'user', 'test', 'file.txt')

from pathlib import Path

path = Path("/home/user/test/file.txt")
parts = path.parts
print(parts)  # 输出: ('/', 'home', 'user', 'test', 'file.txt')

4. Path.suffix

Path.suffix属性返回指定路径的文件扩展名。它会将路径中的文件扩展名与文件名分开。例如,如果我们有一个路径/home/user/test/file.txt,调用Path.suffix会返回.txt

from pathlib import Path

path = Path("/home/user/test/file.txt")
suffix = path.suffix
print(suffix