Python科研武器库 - 字符串操作 - 路径字符串分割 os.path.split()、os.path.splitext()
使用场景:
科研中批量处理数据时的,文件路径分割以及文件格式判断。
对于文件格式判断,是因为实际文件的格式多种多样,就拿图像为例,就有.png .jpg .bmp等等。
更不用说,有时候还有一些干扰文件需要屏蔽(比如Mac系统的.DS_Store文件)。
这就需要我们判断文件格式,再对特定格式的文件进行操作。
使用函数:
- 文件路径分割
os.path.split()
用于将路径拆分为头部和尾部。尾部是路径的最后一个组成部分,而头部是指“尾部”部分前的所有内容。
这里需注意,文件路径的os.path.split()
,与字符串的split()
有所不同,
字符串split()
的用法详见我另一篇博客: - 文件格式判断
os.path.splitext()
用于将路径名拆分为root和ext。其中,ext代表扩展名(extension),表示指定路径(文件)的扩展名部分,而root是除ext部分之外的所有内容。
若指定路径中不包括任何扩展名,则ext为空。如果指定路径以句点 (.
) 开头,则会被忽略。
代码示例:
import os
path = '/home/Lingdu/Desktop/lingdu.txt'
head_tail = os.path.split(path)
print("Head of '% s:'" % path, head_tail[0])
print("Tail of '% s:'" % path, head_tail[1], "\n")
path = '/home/Lingdu/Desktop/'
head_tail = os.path.split(path)
print("Head of '% s:'" % path, head_tail[0])
print("Tail of '% s:'" % path, head_tail[1], "\n")
path = 'lingdu.txt'
head_tail = os.path.split(path)
print("Head of '% s:'" % path, head_tail[0])
print("Tail of '% s:'" % path, head_tail[1])
运行效果:
Head of '/home/Lingdu/Desktop/lingdu.txt:' /home/Lingdu/Desktop
Tail of '/home/Lingdu/Desktop/lingdu.txt:' lingdu.txt
Head of '/home/Lingdu/Desktop/:' /home/Lingdu/Desktop
Tail of '/home/Lingdu/Desktop/:'
Head of 'lingdu.txt:'
Tail of 'lingdu.txt:' lingdu.txt
代码示例:
import os
path = '/home/Lingdu/Desktop/lingdu.txt'
root_ext = os.path.splitext(path)
print("Root part of '% s':" % path, root_ext[0])
print("Ext part of '% s':" % path, root_ext[1], "\n")
path = './home/Lingdu/Desktop/'
root_ext = os.path.splitext(path)
print("Root part of '% s':" % path, root_ext[0])
print("Ext part of '% s':" % path, root_ext[1])
运行效果:
Root part of '/home/Lingdu/Desktop/lingdu.txt': /home/Lingdu/Desktop/lingdu
Ext part of '/home/Lingdu/Desktop/lingdu.txt': .txt
Root part of './home/Lingdu/Desktop/': ./home/Lingdu/Desktop/
Ext part of './home/Lingdu/Desktop/':