0
votes

Comment renommer le fichier XLSX avec la dernière chaîne

J'ai un répertoire où j'ai des fichiers XLSX et des fichiers Word DOC. Je souhaite renommer que des fichiers XLSX uniquement avec la dernière chaîne et la date d'aujourd'hui (DD / mm)

Mon chemin de fichier P>

25_DF_3/5.xlsx
28_DF_3/5.xlsx
DF_30.doc


1 commentaires

y compris / dans le nom de fichier est très dangereux.


3 Réponses :


1
votes

Utiliser str.endswith Pour vérifier l'extension de fichier et la renommée des fichiers.

ex: xxx < / p>


1 commentaires

Encore, il renonce au fichier DOC avec le fichier XLSX et si je l'exécute, c'est ajouter df_df_ comme ceci



0
votes

de xxx

à xxx

Utiliser dd_mmm format

_df est utilisé pour vérifier pour rechercher le fichier est déjà renommé ou non xxx


14 commentaires

Il est ajouté au fichier DOC au lieu du fichier XLSX I.E: df_30.doc_df_03_may


Édité maintenant chèque


Déterminez la ligne et courez pour renommer le nom d'origine


Pouvez-vous s'il vous plaît courir dans votre environnement avec un exemple d'exemple, vous pouvez voir le résultat. Il ne donne pas l'attendu


df_25.xlsx df_28.xlsx df_30.doc Assurez-vous que le fichier est comme celui-ci.


Laissez-nous Continuez cette discussion en chat .


Assurez-moi de me laisser exécuter et de vous revenir à vous


@Manoj Après exécution, il vient comme suit ce 1.xlsx_df_03_may au lieu de 1_df_03_may.xlsx


Voulez-vous exécuter le dernier code? Si une requête continue dans le chat


J'ai couru manoj ... quelque chose de petit manque dehors de cela, vous frappez sur la cible ... Malheureusement, nous obtenons le même résultat


ce que vous obtenez impression (* os.listdir (chemin), sep = '\ n') lors de l'ajout après et avant la boucle


Avant: df_1.xlsx.xlsx après: 1.xlsx_df_03_may.xlsx


Supprimer un .xlsx; Bande ajoutée


Merci @smart Manoj Vous êtes exceptionnel et très compréhensif



1
votes

Voici ma solution. Notez que j'ai changé de barre oblique dans l'expression "DD / mm" sur DOT, car SLASH ne peut pas être utilisé dans le nom de fichier.

import os
#IMPORT RE MODULE TO REMOVE ALL NON-NUMERIC SYMBOLS FROM FILE NAME
import re
from datetime import datetime

#DEFINE D/M TO ADD TO NAME
now = datetime.now().strftime('%d.%m').replace('0','')

path = 'H:\Learning\Mohan'
files = os.listdir(path)
for file in files:
#CHOOSE ONLY .XLSX FILE
    if file.endswith(".xlsx"):
        os.rename(os.path.join(path, file)
                 , os.path.join(path, re.sub("[^0-9]", "",file) +'_DF_' + now + '.xlsx'))


1 commentaires

Hi kev il fonctionne mais si j'exécute le script, il est resté à l'ajout comme ceci 13535_df_3.5 Ce que je m'attends à ce que je suis 1_df_3.5.xlsx