使用場景:
科研中批次處理資料時的,檔案路徑分割以及檔案格式判斷。
對於檔案格式判斷,是因為實際檔案的格式多種多樣,就拿影像為例,就有.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/':