Je suis au courant de la fonction OS.PATH.SPLITEXT (Fichier) en Python, mais cela modifie l'extenson du fichier existant. Je dois conserver le fichier d'origine avec son extension comme fichier lecture et créer un autre fichier avec une autre extension sous forme de fichier d'écriture. Par exemple:
A = "File.inp" pre, ext = os.path.splitext(A) B = os.rename(A, pre + ".PRE") with open("B" , 'w') as f1: with open("A",'r') as f2: ...
3 Réponses :
Malheureusement dès que vous utilisez "OS.Rename ()" ou "Os.replace ()" Il modifie le fichier d'origine et ne "copier" pas "Copier".
Vous pouvez utiliser Shuttilis et ce code: p>
Pas besoin de copier le fichier. Lorsque vous l'ouvrez avec le mode w code>, il sera écrasé.
Il veut "lire uniquement" le fichier "fichier.inp" pour obtenir des informations sur "écrire" dans le fichier "fichier.pre".
exactement. Vous copiez le fichier fichier.inp code> dans un fichier avec nouveau nom
fichier.pre code>. Ensuite, vous passez le même nom de fichier
fichier.pre code> pour ouvrir () avec le mode
w code>. Donc, le fichier que vous avez la peine de créer avec copie est écrasé. c'est-à-dire pas besoin de créer une copie juste pour l'écraser.
Ensuite, je suppose qu'il peut changer le ouvert (..., 'avec') code> et
ouvert (..., 'r') code> pour le réparer
En fonction de quoi OP veut. Et il veut lire depuis fichier.inp code>, faites quelque chose avec ce qu'ils lisent et écrivent dans le nouveau fichier. Au moins, c'est ce que leur question dit et l'extrait d'extraits montre ... et de toute façon, quel est le point de lire deux fois le même contenu - à partir de 2 fichiers ???
pas trop clair. Vous voulez donc conserver le fichier d'origine et en créer une copie avec une extension différente?
Je suppose que shuttil.copy (origine, destination) code> devrait fonctionner p>
Pas besoin de copier le fichier. Lorsque vous l'ouvrez avec le mode w code> (comme dans le code OP), il sera écrasé.
Voici un exemple:
base_file = "File.inp" name, ext = base_file.split('.') new_file = '{}.{}'.format(name, 'PRE') with open(base_file , 'r') as f1: with open(new_file, 'w') as f2: f2.write(f1.read())
Qu'est-ce que vous attendez lorsque vous utilisez
OS.Rename () code>? Il suffit de supprimer cette ligne. Ensuite, lorsque vous passez le nouveau nom de fichier sur
Ouvrir () code> Un fichier avec ce nom sera créé.
Peut-être que vous devez clarifier votre question - Voulez-vous simplement copier le fichier d'origine avec une extension différente ou vous souhaitez créer un nouveau fichier avec une extension différente, lire à partir du fichier d'origine, traiter ce que vous lisez et écrivez dans le nouveau fichier.
@buran: Je dois créer un nouveau fichier qui a le nom du fichier d'origine, mais une autre extension. Le fichier d'origine sera ensuite utilisé comme fichier lecture et le nouveau fichier sous forme de fichier d'écriture, avec un autre format des informations contenues dans le fichier d'origine.