2013-01-24 51 views
2

獲取文件名我有很長的文件的路徑,如:我到底是什麼讓剛剛從那裏文件名的最好辦法,所以了Python的 - 從長路徑

D:%5CMedia%5CMusic%20Videos%5CAlexis%20Jordan%20-%20Good%20Girl%2Emkv 

Alexis Jordan - Good Girl 

從那裏我要剪切的藝術家和標題爲獨立的部分,但我可以管理:)

+0

你有一些設置你喜歡「媒體」,「音樂」,「視頻」的關鍵字,這將保持不變? – Vikram

+0

@Vikram - 不幸的不是。我正在考慮將它從最後切割出來,然後削減最後4個字符,但我不知道該怎麼做。另外我需要將%20轉換爲空格。 – hshah

回答

6

首先,你需要德科德與urllib.unquote() URL編碼然後使用os.path module分裂出來的文件名和擴展名:

import os 
import urllib 

path = urllib.unquote(path) 
filename = os.path.splitext(os.path.basename(path))[0] 

其中os.path.basename()刪除該目錄路徑,os.path.splitext()給你一個文件名和擴展名的元組。

這就給你的文件名:

>>> import os 
>>> import urllib 
>>> path = 'D:%5CMedia%5CMusic%20Videos%5CAlexis%20Jordan%20-%20Good%20Girl%2Emkv' 
>>> path = urllib.unquote(path) 
>>> path 
'D:\\Media\\Music Videos\\Alexis Jordan - Good Girl.mkv' 
>>> filename = os.path.splitext(os.path.basename(path))[0] 
>>> filename 
'Alexis Jordan - Good Girl' 
+0

完美。工作就像一個魅力:) – hshah

2
from urllib2 import unquote 
from os.path import basename 

p = 'D:%5CMedia%5CMusic%20Videos%5CAlexis%20Jordan%20-%20Good%20Girl%2Emkv' 
fname = basename(unquote(p)) 
+0

您已將附加的文件擴展名。 –