假设从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