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