75
A
回答
172
在大多數情況下,你不應該使用正則表達式。
os.path.splitext(filename)[0]
這也將正確處理像.bashrc
這樣的文件名保持全名。
21
>>> import os
>>> os.path.splitext("1.1.1.1.1.jpg")
('1.1.1.1.1', '.jpg')
5
不需要正則表達式。 os.path.splitext
是你的朋友:
os.path.splitext('1.1.1.jpg')
>>> ('1.1.1', '.jpg')
8
如果我有一個正則表達式來做到這一點,我會做這樣的:
s = re.sub(r'\.jpg$', '', s)
相關問題
- 1. 獲取不帶擴展名的文件名,textmade包編輯器
- 2. 使用CMake獲取目標文件名,不帶擴展名
- 3. 從URL和帶文件擴展名獲取文件名
- 4. 獲取文件擴展名
- 5. 獲取除擴展名外沒有擴展名的文件名
- 6. 用Python獲取文件名和擴展名爲hdfs的文件
- 7. 獲取文件名,不帶有條件的URL擴展
- 8. 獲取文件的擴展名,但無法獲取文件名
- 9. 如何從沒有擴展名的文件名獲取文件擴展名?
- 10. 在C#Stacktrace中獲取短文件名(帶擴展名)?
- 11. 獲取不帶擴展名的文件類型c#
- 12. 不帶擴展名的塊文件
- 13. 提取文件名(不含擴展名)
- 14. 解密文件不帶擴展名
- 15. 獲取文件的擴展名(編輯)
- 16. 獲取擴展類的文件名
- 17. Python:獲取包含特定文件擴展名的文件夾
- 18. jQuery的,獲取文件名不帶擴展名,然後替換字符串
- 19. 獲取文件的擴展名,但不在路徑中提供擴展名
- 20. 獲取帶有擴展名的目錄中的文件列表
- 21. 獲取未知文件名的文件擴展名
- 22. 獲取Php文件/圖像擴展名
- 23. 從文件擴展名獲取ImageFormat
- 24. Primefaces FileUpload獲取文件擴展名
- 25. FileUpload獲取文件擴展名
- 26. Node.js獲取文件擴展名
- 27. 獲取文件擴展名 - jquery
- 28. 使用preg_replace獲取文件擴展名
- 29. 在java中獲取文件擴展名
- 30. 獲取文件擴展名C錯誤
@nate C:我修改了我的答案,而你正在寫您的評論。 – 2010-12-14 22:34:36
使用「git-1.7.8.tar.gz」無法正常工作,只能刪除「.gz」。我使用'basename [: - len(「。tar.gz」)]'這個。 – blueyed 2011-12-09 14:10:24
@blueyed:「不正常工作」是一個視角問題。該文件*是一個gzip文件,其基本名稱是'git-1.7.8.tar'。沒有辦法正確地猜出調用者想要去掉多少個點,所以'splitext()'只能去掉最後一個點。如果你想處理像'.tar.gz'這樣的邊緣情況,你必須親自去做。顯然,你不能去掉所有的點,因爲你最終會得到'git-1'。 – 2011-12-09 22:29:52