Explorateur de fichier
Fermé
Fabien
-
Modifié le 10 mars 2022 à 16:14
mamiemando Messages postés 33284 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 septembre 2024 - 21 mars 2022 à 10:07
mamiemando Messages postés 33284 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 septembre 2024 - 21 mars 2022 à 10:07
A voir également:
- Explorateur de fichier
- Fichier rar - Guide
- Explorateur de fichiers - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment ouvrir un fichier epub ? - Guide
3 réponses
mamiemando
Messages postés
33284
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
25 septembre 2024
7 787
Modifié le 16 mars 2022 à 19:16
Modifié le 16 mars 2022 à 19:16
Bonjour,
Si j'ai bien compris ce que tu veux faire, j'utiliserais une expression régulière dont le but serait d'extraire (si on considère que le fichier s'appelle
Est-ce que ça te convient ?
Bonne chance
Si j'ai bien compris ce que tu veux faire, j'utiliserais une expression régulière dont le but serait d'extraire (si on considère que le fichier s'appelle
fichier_11.txt):
- tout ce qui est avant l'index (
prefix
), e.g.,fichier_
; - l'index (
index
), e.g.,11
; - tout ce qui est après l'index (
suffix
), e.g.,.txt
.
import re RE_INDEXED_FILENAME = re.compile(r"(.*)(\d)([.].*)") def increment_filename(filename): m = RE_INDEXED_FILENAME.match(filename) if not m: raise RuntimeError(f"Invalid filename: {filename}") (prefix, index, suffix) = (m.group(i) for i in range(1, 4)) index = int(index) return f"{prefix}{index + 1}{suffix}" filename = "fichier_11.txt" print(increment_filename(filename)) # Affiche fichier_12.txt
Est-ce que ça te convient ?
Bonne chance
mamiemando
Messages postés
33284
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
25 septembre 2024
7 787
10 mars 2022 à 16:20
10 mars 2022 à 16:20
Bonjour,
Personnellement, je n'ai pas compris ta question. Quels sont ces noms de fichiers dont tu parles ? Le code est incomplet et tu ne nous dit pas ce que tu veux faire. Essaye d'avoir un code minimal qui met en évidence ton problème et essaye d'expliquer clairement ce que tu veux faire (paramètres d'entrées, résultat attendu), sans quoi on peut difficilement t'aider...
J'ai l'impression que ton problème concerne les lignes 9 à 20. Indique les fichiers qui existe. Indique les renommages que tu tentes de déclencher et comment (en particulier, si le fichier cible existe) ils doivent être faits.
Bonne chance
Personnellement, je n'ai pas compris ta question. Quels sont ces noms de fichiers dont tu parles ? Le code est incomplet et tu ne nous dit pas ce que tu veux faire. Essaye d'avoir un code minimal qui met en évidence ton problème et essaye d'expliquer clairement ce que tu veux faire (paramètres d'entrées, résultat attendu), sans quoi on peut difficilement t'aider...
J'ai l'impression que ton problème concerne les lignes 9 à 20. Indique les fichiers qui existe. Indique les renommages que tu tentes de déclencher et comment (en particulier, si le fichier cible existe) ils doivent être faits.
Bonne chance
Bonjour,
Désolé de cette réponse tardive.
--------------------------------------------------------------------
--------------------------------------------------------------
Voici donc le script en question, et le soucis c'est que j'aimerais diviser le nom du fichier en trois parties c'est a dire : imaginons j'ai "Test_1.txt" j'aimerais le diviser en trois parties qui donnera "Test", "1", ".txt" pour que quand je modifie deux fois le même fichier qu'il me fasse "Test_2.txt".
Et dans mon script actuel quand j'ai une fois "Test_1.txt" et que je veux modifier le deuxième avec le même nom que le premier, il me fait "Test_1_1.txt" au lieu de "Test_2.txt".
Désolé de cette réponse tardive.
--------------------------------------------------------------------
from tkinter import * from tkinter import filedialog import os print("Liste des fichiers présents dans le dossier : ",os.listdir()) # ['aa.txt', 'bb.txt', 'operations_os_test.py'] def renommer_fichier(): global fichier_a_renommer fichier_a_renommer = filedialog.askopenfilename(title="Choisissez un fichier à renommer",filetypes=[("Tous les fichiers",".")]) print("Chemin complet du fichier : ",fichier_a_renommer) print("Chemin complet du dossier parent du fichier : ",os.path.dirname(fichier_a_renommer)) print("Tuple dossier parent et fichier + extension : ",os.path.split(fichier_a_renommer)) print("Tuple fichier et extension : ",os.path.splitext(fichier_a_renommer)) print("Extension : ",os.path.splitext(fichier_a_renommer)[1]) """ Chemin complet du fichier : C:/Users/fabrice/Desktop/dossier_test/bb.txt Chemin complet du dossier parent du fichier : C:/Users/fabrice/Desktop/dossier_test Tuple fichier et extension : ('C:/Users/fabrice/Desktop/dossier_test/bb', '.txt') Extension : .txt """ def renommer_fichier_2(): renommer_fichier() nouveau_nom = input("Le nouveau nom que vous avez choisi : ") try: fichier_nouveau_nom = os.path.join(os.path.dirname(fichier_a_renommer), nouveau_nom+os.path.splitext(fichier_a_renommer)[1]) os.rename(fichier_a_renommer, fichier_nouveau_nom) except FileExistsError: iteration = 1 while True: if nouveau_nom+"()"+str(iteration)+os.path.splitext(fichier_a_renommer)[1] in os.listdir(): iteration = iteration+1 else: break fichier_nouveau_nom = os.path.join(os.path.dirname(fichier_a_renommer), nouveaunom+""+str(iteration)+os.path.splitext(fichier_a_renommer)[1]) os.rename(fichier_a_renommer, fichier_nouveau_nom) renommer_fichier_2()
--------------------------------------------------------------
Voici donc le script en question, et le soucis c'est que j'aimerais diviser le nom du fichier en trois parties c'est a dire : imaginons j'ai "Test_1.txt" j'aimerais le diviser en trois parties qui donnera "Test", "1", ".txt" pour que quand je modifie deux fois le même fichier qu'il me fasse "Test_2.txt".
Et dans mon script actuel quand j'ai une fois "Test_1.txt" et que je veux modifier le deuxième avec le même nom que le premier, il me fait "Test_1_1.txt" au lieu de "Test_2.txt".
16 mars 2022 à 20:14
Comment pourrais-je l'intégrer dans mon script initiale?
Modifié le 17 mars 2022 à 12:17
Je ne comprends pas trop pourquoi dans ton script tu mémorises ces variables dans donc c'est pour ça qu'ici j'ai enlevé le qui les précédaient.
Bonne chance
Modifié le 17 mars 2022 à 20:05
Il me donne des erreurs.
Merci
18 mars 2022 à 13:31
Modifié le 21 mars 2022 à 09:58
Et le code concerné :
Et le code complet que j'ai :