本篇 ShengYu 介紹 Python 取出路徑中的檔案名稱 os.path.basename() 的用法與範例,並示範在 linux、macOS、windows 各平台下的差異。
以下範例是在 Python 3 環境下測試過。
取出路徑中的檔案名稱
os.path.basename()
為去除目錄的路徑,回傳檔案名稱(包含附檔名),
使用 os.path.basename()
時,需先 import os
,
由於 linux 與 windows 目錄字元不同,linux 與 macOS 一樣是使用 \
斜線,windows 是使用 /
反斜線,
以下示範同樣的程式碼在 linux 與 windows 兩平台的執行結果差異,
程式碼如下,1
2
3
4
5
6#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
print('basename: ' + os.path.basename('/home/user/aaa.txt'))
print('basename: ' + os.path.basename('C:\\User\\Desktop\\aaa.txt'))
linux 與 macOS 平台輸出結果如下,1
2basename: aaa.txt
basename: C:\User\Desktop\aaa.txt
windows 平台輸出結果如下,1
2basename: /home/user/aaa.txt
basename: aaa.txt
不包含附檔名的檔案名稱
如果取出的檔案名稱不想要包含附檔名的話可以使用 split 切割字串來去除副檔名,關於 split 的詳細用法可以參考這篇,這邊範例就只示範 linux/macOS 的路徑,windows 路徑在 windows 下一樣適用,1
2
3
4
5
6
7#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
unix_path = '/home/user/aaa.txt'
basename = os.path.basename(unix_path).split('.')[0]
print('basename: ' + basename)
輸出結果為1
basename: aaa
你也可以使用 os.path.splitext()
來達成同樣的效果,1
2
3
4
5
6
7#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
unix_path = '/home/user/aaa.txt'
basename = os.path.splitext(os.path.basename(unix_path))[0]
print('basename: ' + basename)
下一篇介紹 取出目錄的路徑 dirname
其他參考
python中的os.path模块用法(一)_Python_ziyuzhao123的专栏-CSDN博客
https://blog.csdn.net/ziyuzhao123/article/details/8811496
Python os.path() 模块 | 菜鸟教程
https://www.runoob.com/python/python-os-path.html
其它相關文章推薦
如果你想學習 Python 相關技術,可以參考看看下面的文章,
Python 新手入門教學懶人包
Python 取出目錄的路徑 dirname
Python 字串分割 split
Python 連接字串 join
Python 去除空白與去除特殊字元 strip
Python 取代字元或取代字串 replace