假設從index.py
與CGI,我有文件foo.fasta
來顯示文件。我想在顯示文件中將foo.fasta
的文件擴展名更改爲foo.aln
。我該怎麼做?在Python中更改文件擴展名
回答
os.path.splitext()
,os.rename()
例如:
# renamee is the file getting renamed, pre is the part of file name before extension and ext is current extension
pre, ext = os.path.splitext(renamee)
os.rename(renamee, pre + new_extension)
import os
thisFile = "mysequence.fasta"
base = os.path.splitext(thisFile)[0]
os.rename(thisFile, base + ".aln")
哪裏thisFile =您正在改變
我更喜歡這個答案,因爲它提供了一個例子,而不僅僅是引用完成任務所需的方法。謝謝@FryDay – sadmicrowave 2013-08-30 03:45:46
使用此文件的絕對路徑:
os.path.splitext("name.fasta")[0]+".aln"
這裏是多麼上述工程:
的splitext方法從擴展創建一個元組分隔名稱:
os.path.splitext("name.fasta")
創建的元組現在包含字符串「名」和「FASTA」。 然後你只需要訪問字符串「名」,這是元組的第一個元素:
os.path.splitext("name.fasta")[0]
然後你想要一個新的擴展添加到該名稱:
os.path.splitext("name.fasta")[0]+".aln"
起價Python 3.4裏面有pathlib內置庫。因此,代碼可能是這樣的:
from pathlib import Path
filename = "mysequence.fasta"
new_filename = Path(filename).stem + ".aln"
https://docs.python.org/3.4/library/pathlib.html#pathlib.PurePath.stem
我愛pathlib :)
這是一個非常酷的lib!謝謝! – 2017-04-24 01:06:16
這對於python 3.6字符串插值語法來說更好(https://www.python.org/dev/peps/pep-0498/) 'new_filename = f「{Path(filename).stem} .aln」' – 2018-02-03 07:11:42
小心 - 如果有人存在,莖也會剝離路徑。如果你想重命名文件,並且提供了一個路徑(當然這不是問題),這種技術會失敗。 – 2018-02-11 15:49:11
使用pathlib.Path一種優雅的方式:
from pathlib import Path
p = Path('mysequence.fasta')
p.rename(p.with_suffix('.aln'))
雖然OP沒有要求執行重命名,但它是在標籤中,並且如果要執行重命名,並且如果可能輸入可能有路徑而不僅僅是文件名,則此技術是正確的一。 – 2018-02-11 15:51:08
- 1. 更改文件擴展名?
- 2. 文件擴展名更改
- 3. 在unix中更改文件擴展名
- 4. 在SharePoint中更改文件擴展名
- 5. 如何在Python中更改文件名和擴展名?
- 6. 在python中使用argparse更改文件擴展名
- 7. Apache mod_rewrite更改文件擴展名
- 8. CMD更改文件擴展名
- 9. 更改文件擴展名的語言?
- 10. 更改gif文件的擴展名
- 11. PHP更改文件擴展名
- 12. 使用Jquery更改文件擴展名
- 13. 如何更改文件的擴展名?
- 14. Ansible角色:更改文件擴展名
- 15. 使用sed更改文件擴展名
- 16. 如何更改文件擴展名?
- 17. 更改文件擴展名VB.NET
- 18. 使用PHP更改文件擴展名
- 19. Grunt:更改文件擴展名
- 20. 更改文件擴展名SPListItem SharePoint 2007
- 21. Git自動更改文件擴展名
- 22. 批量更改文件擴展名
- 23. 在vim中根據文件擴展名更改文件類型
- 24. 與文件擴展名更改相關的python xlrd錯誤
- 25. python - 更改多個具有相同擴展名的文件
- 26. 如何在Python中將文件擴展名(.npy改爲.csv)?
- 27. Intellij - 如何從IDE中更改文件的文件擴展名?
- 28. bash:更改文件夾中所有頭文件的擴展名
- 29. 更改目錄中所有文件的文件擴展名OSX
- 30. 在Expression Web 3中更改文件擴展名的設置
你能更具體,我看到的文檔之前也沒有工作。 – MysticCodes 2010-05-24 21:17:58
使用第一個函數來獲得基數。將它與新擴展相結合,並將舊文件名和新文件名傳遞給第二個函數。 – 2010-05-24 21:20:28
更正:'os.rename(root,root + new_extension)'應該讀取'os.rename(renamee,root + new_extension)' – mloskot 2014-05-20 10:16:50