IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Copier un fichier inconnu ! [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Musicienne
    Inscrit en
    Février 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Portugal

    Informations professionnelles :
    Activité : Musicienne

    Informations forums :
    Inscription : Février 2019
    Messages : 22
    Par défaut Copier un fichier inconnu !
    Bonjour.
    Le contexte : je ne suis pas une flèche en Python... Je l'utilise un peu dans d'autres applications (Lightwave, Poser 3D) pour me simplifier les taches répétitives.

    Mon soucis :
    Je dois copier plusieurs fichiers d'un répertoire vers un autre. Exemple "Toto.pz3" et "Toto.pmd" vers un autre dossier sous le nom Autredossier + Tototemp.pz3

    Toto est une variable que je renseigne. «pz3« et «pmd» sont des extensions, toujours les mêmes.

    Jusque là tout va bien, je sais faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    hostname ="Toto"
    fichierpz3 = hostname  + ".pz3"
    ficpmd = hostname  + ".pmd"
     
    	if os.path.exists(pathdestination + hostname + "temp.pz3"):
    		os.remove(pathdestination + hostname + "temp.pz3")
     
    	if os.path.exists(pathdestination + hostname + "temp.pmd"):
    		os.remove(pathdestination + hostname + "temp.pmd")		
     
    	copyfile(pathorigine + fichierpz3, pathdestination + hostname + "temp.pz3")
     
    	if os.path.exists(ficpmd):
    		copyfile(pathorigine + ficpmd, pathdestination + hostname + "temp.pmd")
    Mais parfois mon application hôte (par exemple Poser 3D) génère un autre fichier de structure «TotoKekchose.abc»
    Je connais «abc» mais j'ignore «kekchose». Et je voudrais également copier ce fichier...

    Donc je voudrais pouvoir programmer ceci :

    Existe-t-il un fichier "Toto" + Kekchoseinconnu + ".abc" ?
    Si oui quelle est la valeur de la chaine «kekchoseinconnu»

    Si vous avez une idée «clé en main» merci de votre aide car je ne suis pas informaticienne...
    Donc je ne cherche pas à devenir une kador dans le domaine mais juste à utiliser cet outil bien pratique qui me rend parfois un peu dingotte...

    Pour info : je suis musicienne et j'utilise des logiciels d'animation 3D pour produire des clips vidéo illustrant nos prestations...

    Je ne sais pas si c'est autorisé, sinon merci de me le dire et j'effacerai le lien, mais je donne un aperçu Youtube de notre travail.(Nous sommes Portugaises)



    Cordialement,
    Syb'

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Récupérer la liste des fichiers d'un répertoire peut se faire via os.listdir(repertoire). Ca retourne une liste de noms de fichiers (des chaines de caractères) qu'on peut trier en récupérant les noms qui se terminent par .qqc.
    Sinon vous pouvez regardez ce que sait faire glob.glob(...)

    Citation Envoyé par SybelleDeNuit Voir le message
    Si vous avez une idée «clé en main» merci de votre aide car je ne suis pas informaticienne...
    Donc je ne cherche pas à devenir une kador dans le domaine mais juste à utiliser cet outil bien pratique qui me rend parfois un peu dingotte...
    La programmation, c'est comme la cuisine ou la couture (ou n'importe quelle activité "technique"), vous devez prendre le temps d'apprendre les bases (même si vous ne voulez pas devenir chef cuistot) déjà pour comprendre ce que raconte une recette de cuisine (la documentation) puis pour "réaliser" un plat avec les outils et les connaissances que vous avez (coder).

    Et comme pour la cuisine, il peut paraître frustrant du temps passé à d'apprendre et de faire une pizza pour la voir disparaître en quelques minutes à sa sortie du four.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Femme Profil pro
    Musicienne
    Inscrit en
    Février 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Portugal

    Informations professionnelles :
    Activité : Musicienne

    Informations forums :
    Inscription : Février 2019
    Messages : 22
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    La programmation, c'est comme la cuisine ou la couture (ou n'importe quelle activité "technique"), vous devez prendre le temps d'apprendre les bases (même si vous ne voulez pas devenir chef cuistot) déjà pour comprendre ce que raconte une recette de cuisine (la documentation) puis pour "réaliser" un plat avec les outils et les connaissances que vous avez (coder).

    Et comme pour la cuisine, il peut paraître frustrant du temps passé à d'apprendre et de faire une pizza pour la voir disparaître en quelques minutes à sa sortie du four.

    - W
    Bonjour et merci beaucoup pour cette piste. Je vais m'y mettre rapidement et je vous tiendrai au courant.
    Je crois que les bases, je les ai et je ne rechigne pas au travail. Mais résoudre un problème simple pour vous et qui me demandera 3 heures de recherches (qui une fois abouties ne me resservirons plus !) ne me parait pas judicieux.
    Par exemple, si vous voulez chanter une chanson, je ne vous conseillerez pas d'apprendre le piano ou la guitare. Je vous dirai «chantez, je vais vous accompagner de mon instrument..».
    Et ce sera certainement très joli !

    Cordialement,
    Syb'

    PS : la cuisine ou la couture... y'a aussi le ménage et le maquillage qui sont très techniques...

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par SybelleDeNuit Voir le message
    Par exemple, si vous voulez chanter une chanson, je ne vous conseillerais pas d'apprendre le piano ou la guitare. Je vous dirai «chantez, je vais vous accompagner de mon instrument..».
    Oui, une fois, deux fois. Ensuite tu diras "bon maintenant ce serait bien d'apprendre quand-même quelques bases"...

    Citation Envoyé par SybelleDeNuit Voir le message
    Et ce sera certainement très joli !
    Il faut être un sacré musicien pour accompagner un débutant qui ne connait rien à la théorie de la musique et produire un joli résultat. Toutefois tu l'as dit, "je vais vous accompagner" et pas "je vais chanter à votre place"...

    Citation Envoyé par SybelleDeNuit Voir le message
    Citation Envoyé par SybelleDeNuit Voir le message
    Je l'utilise un peu dans d'autres applications (Lightwave, Poser 3D) pour me simplifier les taches répétitives.
    Mais résoudre un problème simple pour vous et qui me demandera 3 heures de recherches (qui une fois abouties ne me resservirons plus !) ne me parait pas judicieux.
    Faudrait être cohérent. Si tu veux te faire aider de Python, il te faut quand-même alors faire un peu de recherche qui, justement, te resserviront certainement plus tard.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre averti
    Femme Profil pro
    Musicienne
    Inscrit en
    Février 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Portugal

    Informations professionnelles :
    Activité : Musicienne

    Informations forums :
    Inscription : Février 2019
    Messages : 22
    Par défaut
    Bonjour

    Citation Envoyé par Sve@r Voir le message
    Oui, une fois, deux fois. Ensuite tu diras "bon maintenant ce serait bien d'apprendre quand-même quelques bases"...
    Non, non, je ne suis pas comme ça, je fais les choses comme elles me plaisent et je laisse les autres en faire autant. Tant que c'est du divertissement, je ne vais pas imposer ni à moi ni aux autres une règle de «Savoir s'amuser»...
    Nous jouons souvent dans des petits bars où des chanteurs de salle de bain viennent improviser et des musiciens très peu expérimentés viennent agrandir le cercle des plus chevronnés. Ils sont bien accueillis, on appelle ça une «Roda», c'est un concept Brésilien.

    Citation Envoyé par Sve@r Voir le message
    Il faut être un sacré musicien pour accompagner un débutant qui ne connait rien à la théorie de la musique et produire un joli résultat. Toutefois tu l'as dit, "je vais vous accompagner" et pas "je vais chanter à votre place"...
    Je suis d'accord : Moi qui sait faire de la musique et un peu de 3D je fais de la musique et un peu de 3D et ceux qui savent programmer montrent à ceux qui ne savent pas. Je ne dis à personne «si tu veux faire de la musique, sache que c'est des notes et débrouille-toi avec !»

    Citation Envoyé par Sve@r Voir le message
    Faudrait être cohérent. Si tu veux te faire aider de Python, il te faut quand-même alors faire un peu de recherche qui, justement, te resserviront certainement plus tard.
    D'abord je ne suis pas cohérente, faut faire avec. Ce qui me sert vraiment, d'après mon expérience, c'est de poser des lignes qui fonctionnent et ensuite de chercher à comprendre pourquoi elles fonctionnent et pas de me taper 3 heures d'erreurs de syntaxe parce que je ne maîtrise pas le langage.
    C'est comme pour film en VO. Je mets les sous-titres au lieu d'apprendre le Coréen...

    Merci quand même pour ton aide.
    Cordialement,
    Syb'

  6. #6
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    Citation Envoyé par SybelleDeNuit Voir le message
    Le contexte : (...) Si vous avez une idée «clé en main» merci (...) car je ne suis pas informaticienne (...) je ne cherche pas à devenir une kador dans le domaine
    sans être totalement clé en main, un exemple de code facile à adapter qui devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import os, re, shutil
     
    source = 'repertoire_source'
    destination = 'repertoire_destination'
    debut_fichier = 'toto'
    extension = '.abc'
    regex = re.compile(debut_fichier + r'.*' + extension)
     
    for fichier in os.listdir(source):
       if regex.match(fichier):
          shutil.copyfile( os.path.join(source, fichier), os.path.join(destination, fichier) )
    note que pour le coup ça copie à la fois toto_machin.abc et également toto.abc dans la foulée

  7. #7
    Membre averti
    Femme Profil pro
    Musicienne
    Inscrit en
    Février 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Portugal

    Informations professionnelles :
    Activité : Musicienne

    Informations forums :
    Inscription : Février 2019
    Messages : 22
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    salut,

    Sans être totalement clé en main, un exemple de code facile à adapter qui devrait fonctionner :
    Sympa... Ça me parait accessible à ma petite tête creuse. Je vais certainement facilement pouvoir l'adapter et ça va bien me soulager.
    Je vous tiens au courant rapidement.

    Cordialement,
    Syb'

  8. #8
    Membre averti
    Femme Profil pro
    Musicienne
    Inscrit en
    Février 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Portugal

    Informations professionnelles :
    Activité : Musicienne

    Informations forums :
    Inscription : Février 2019
    Messages : 22
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    salut,

    sans être totalement clé en main, un exemple de code facile à adapter qui devrait fonctionner :
    Merci beaucoup, ça fonctionne à merveille. J'ai fait juste quelques petites adaptations pour que ça colle avec le reste.
    Et la cerise c'est que j'ai pu simplifier mon code puisque tous les fichiers avec préfixe "Toto" son copiés sans que je me soucie de ce que le programme hôte va créer.

    Glob.glob fonctionne aussi mais la solution est moins élégante, surtout que «glob.glob» ça fait un peu gargouillis dans mon joli programme...

    Donc merci à toi BufferBob et aussi aux autres pour leurs précieuses leçons.

    Cordialement,
    Syb'

    PS: Bon, j'ai encore la vaisselle à faire, mais je devrais y arriver toute seule !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. copier des fichiers
    Par Daeron dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/11/2004, 14h45
  2. Copier certains fichiers d'une arborescence ?
    Par narmataru dans le forum Linux
    Réponses: 4
    Dernier message: 27/04/2004, 12h15
  3. Copier coller Fichier windows
    Par KPitN dans le forum Windows
    Réponses: 8
    Dernier message: 20/04/2004, 17h32
  4. Batch pour copier des fichier
    Par borgfabr dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 09/03/2004, 07h55
  5. Détourner une fonction pour copier un fichier en mémoire
    Par Rodrigue dans le forum C++Builder
    Réponses: 6
    Dernier message: 12/11/2003, 08h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo