0
votes

OS Supprimer tout fichier mais .PY Fichier de l'annuaire

J'essaie de trouver un moyen d'écrire un script si tout fichier CSV existe dans un répertoire, supprimez-le. Comment puis-je écrire ceci sans spécifier un nom de fichier spécifique?

est-il possible d'écrire si un fichier existe mais une extension de fichier py , supprimez-la avec OS ? xxx


2 commentaires

Promenez-vous dans chaque fichier et voyez si un findswith ('. CSV')


.Lower (). Finwith (". CSV") en cas de .csv


3 Réponses :


0
votes

Ceci devrait fonctionner - il suffit de répertorier tous les fichiers / dossiers du répertoire, et s'ils ne se terminent pas avec .PY, supprimez-les.

for filename in os.listdir('.'):
    if not filename.endswith('.py'):
        if os.path.isfile(filename):
            os.remove(filename)
        else:
            os.rmdir(filename)


4 commentaires

Bonjour, pourriez-vous incorporer une instruction ou pour inclure les fichiers .csv & .png en plus de .PY? Quelque chose comme: sinon nom de fichier.endsswith ('. Py') ou non nom de fichier.endsswith ('. CSV') ou non nom de fichier.WITH ('. PNG'):


et fonctionnerait mieux que ou là ( si non (l'un de ces) et sinon (ceci) et non (ceci) et non et non (ceci) sont logiquement équivalents. Mais oui, cela serait simple à faire.


Ah OK, donc un si ce n'est pas le nom de fichier.endswith ('. Py', '. CSV', 'PNG'): fonctionnerait également? Merci pour ton aide


Non, car la fonction endswith () ne fonctionne pas de cette façon - mais sinon (nom_fichier.endswith ('. Py') ou nom de fichier.WITH ('. CSV') ou nom de fichier .endswith ('. png')): devrait fonctionner



0
votes

vous pouvez faire comme ça xxx


0 commentaires

2
votes

Vous pouvez faire quelque chose comme ceci:

import os

root = "e:/"

for root, dirs, files in os.walk(root):
    for file in files:
        if file.endswith('.csv'):
            print("removed: " + os.path.join(root, file) )
            os.remove( os.path.join(root, file) )


0 commentaires