假设从index.py
CGI开始,我已经将文件foo.fasta
显示为文件。我想将foo.fasta
的文件扩展名更改为foo.aln
显示文件。我该怎么做?
Answers:
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)
os.rename(root, root + new_extension)
应阅读os.rename(renamee, root + new_extension)
import os
thisFile = "mysequence.fasta"
base = os.path.splitext(thisFile)[0]
os.rename(thisFile, base + ".aln")
其中thisFile =您要更改的文件的绝对路径
base, _ = os.path.splitext(thisFile)
更习惯。
使用pathlib.Path的一种优雅方式:
from pathlib import Path
p = Path('mysequence.fasta')
p.rename(p.with_suffix('.aln'))
.with_suffix()
,性质.suffix
和.suffixes
应有setter方法。
从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 :)
new_filename = f"{Path(filename).stem}.aln"
-Ki
p.parent / (p.stem + '.aln')
会给你一个新的路径。
就像AnaPana提到的那样,pathlib在python 3.4中更新,更容易,并且有一个新的with_suffix方法可以轻松解决此问题:
from pathlib import Path
new_filename = Path(mysequence.fasta).with_suffix('.aln')