134 votes

Changement d'extension de fichier en Python

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 ?

134voto

Nikita Malyavin Points 1211

Une manière élégante d'utiliser pathlib.Path :

from pathlib import Path
p = Path('mysequence.fasta')
p.rename(p.with_suffix('.aln'))

106voto

Ignacio Vazquez-Abrams Points 312628

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)

85voto

FryDay Points 337
import os
thisFile = "mysequence.fasta"
base = os.path.splitext(thisFile)[0]
os.rename(thisFile, base + ".aln")

Où thisFile = le chemin absolu du fichier que vous modifiez

28voto

AnaPana Points 1220

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 :)

22voto

A.S Points 865

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"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X