Supposons que de index.py
avec CGI, j'ai un fichier de poste foo.fasta
pour afficher le fichier. Je veux changer foo.fasta
L'extension du fichier de l'utilisateur est foo.aln
dans le fichier d'affichage. Comment puis-je le faire ?
Réponses
Trop de publicités?Une manière élégante d'utiliser pathlib.Path :
from pathlib import Path
p = Path('mysequence.fasta')
p.rename(p.with_suffix('.aln'))
os.path.splitext()
, os.rename()
par exemple :
# 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)
A partir de Python 3.4, il y a pathlib bibliothèque intégrée. Le code pourrait donc être quelque chose comme :
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
J'adore pathlib :)
Utilisez ça :
os.path.splitext("name.fasta")[0]+".aln"
Et voici comment cela fonctionne :
La méthode splitext sépare le nom de l'extension en créant un tuple :
os.path.splitext("name.fasta")
le tuple créé contient maintenant les chaînes "name" et "fasta". Vous devez donc accéder uniquement à la chaîne "name" qui est le premier élément du tuple :
os.path.splitext("name.fasta")[0]
Et puis vous voulez ajouter une nouvelle extension à ce nom :
os.path.splitext("name.fasta")[0]+".aln"