【Python 檔案處理 #1】取出檔案名稱 (含副檔名、不含副檔名) 取出檔名路徑, 不要副檔名 (os path split basename)

前言

我們經常會有需要取出檔名的時候,有時候會只需要不含副檔名的名稱,
這時我們可以使用以下的方法,取出我們的檔名。

  • 以下為我們在此文章中命名的方式:
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