前言
我們經常會有需要取出檔名的時候,有時候會只需要不含副檔名的名稱,
這時我們可以使用以下的方法,取出我們的檔名。
- 以下為我們在此文章中命名的方式:
filepath = '/home/ubuntu/python/example.py'
basename = os.path.basename(filepath) # basename - example.py
filename = os.path.splitext(basename)[0] # filename - example
最基本的 split,完全切開 (最直接,不 import 任何套件的想法)
split 能依照指定的字元,將所有的內容依照指定內容切開後,
存成一個list回傳。
Sample code
filepath = '/home/ubuntu/python/example.py'
result = filepath.split('/')
- 結果:result = [”, ‘home’, ‘ubuntu’, ‘python’, ‘example.py’]
切的最細,可以搭配 join 使用,組合出自己想要的結果字串。
【example.py】我只要檔名 basename (含副檔名) os.path.basename
Sample code -> example.py
filepath = '/home/ubuntu/python/example.py'
basename = os.path.basename(filepath)
# OR
result = os.path.split(filepath)[1] # ['/home/ubuntu/python', 'example.py'] 的第二個欄位
- 結果:basename = ‘example.py’
我要檔名與他的路徑 os.path.split
Sample code -> [路徑 + example.py]
filepath = '/home/ubuntu/python/example.py'
result = os.path.split(filepath)
- 結果:result = [‘/home/ubuntu/python’, ‘example.py’]
【example】我只要檔名,不要他的副檔名 os.path.splitext (需要先取得 basename)
Sample code -> example
basename = 'example.py'
filename = os.path.splitext(basename)[0]
# OR
filename = basename.split(".")[0] # 此作法風險:檔案名稱內有其他".""
- 結果:filename = ‘example’
與上面合體
filepath = '/home/ubuntu/python/example.py'
basename = os.path.basename(filepath) # example.py
filename = os.path.splitext(basename)[0] # example
Reference
https://blog.csdn.net/ziyuzhao123/article/details/8811496
https://shengyu7697.github.io/blog/2020/03/28/Python-os-path-basename/
https://blog.csdn.net/zzc15806/article/details/81352742