Contenu | Rechercher | Menus

Annonce

T-shirt Seiche Cosmic, Série limitée

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Ubuntu 18.10
T-shirt Ubuntu-FR « Seiche Cosmique » en série limitée ! Prix spécial pré-vente (15€) jusqu'au 4 novembre 2018.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

Heure d'hiver: N'oubliez pas de décochez l'heure d'été dans votre profil.

#1 Le 16/10/2018, à 14:33

albenic

Python souci avec shutil.copy

Bonjour,
j'ai fait le tour de tous les forums et je ne trouve pas la solution à mon problème et je suis persuadé que c'est une erreur idiote mais je ne trouve pas.

Voici un morceau de script

extension = '.mp3'
fichier = open('nouveaux_noms.csv', 'r') 
sourcecsv = csv.reader(fichier)
for ligne in sourcecsv:
    source = 'entree/'+ligne[0]
    destination = 'sortie/'+ligne[1]+'_'+ligne[2]+extension
    shutil.copy(source,destination)
fichier.close()

Le fichier "nouveaux_noms.csv" est comme suit :

ZOOM0001.MP3,Nom1,Prénom1
ZOOM0002.MP3,Nom1,Prénom2
ZOOM0003.MP3,Nom1,Prénom3

Je suis dans le bon répertoire testé avec

os.getcwd()

dans lequel se trouve deux dossiers un nommé "entree" et l'autre "sortie".

J'ai tenté de multiples variations mais rien n'y fait les fichiers du répertoire entree ne sont pas copiés dans le répertoire sortie.

Je suis au bord de la crise de nerf, merci pour votre aide.

Hors ligne

#2 Le 16/10/2018, à 16:34

pingouinux

Re : Python souci avec shutil.copy

Bonjour,
Dans un premier temps, imprime ligne, source et destination dans la boucle. Quelques valeurs suffiront pour te faire une idée.

Hors ligne

#3 Le 16/10/2018, à 16:46

bipede

Re : Python souci avec shutil.copy

Bonjour,
Python ne génère aucune erreur ?
Es-tu sûr de l’orthographe de tes fichiers dans ton fichier csv ?
Es-tu sûr de l'orthographe de tes répertoires ?
Ton répertoire est bien en lecture/écriture ?
Si tu réponds non à la première question et oui à toutes les autres c'est que le problème ne se situe pas dans le bout de code fourni, mais ailleurs...


Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Ubuntu 18.10 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 18.10 avec /home séparé.

Mon site: Les contributions du bipède

Hors ligne

#4 Le 17/10/2018, à 08:20

albenic

Re : Python souci avec shutil.copy

Bonjour,
merci de vous intéressé à mon cas.
Je suis sûr de mes fichiers.
Le script que j'ai présenté est la fin d'un script plus gros.
J'ai eu l'idée d'écrire un nouveau script séparé du début. du précédent uniquement pour tester cette partie.
Cela a parfaitement fonctionné.
J'en suis là de mes investigations.
Lorsque je travaille sur un seul gros script le début se fait bien mais la fin plante.
Si je sépare la fin et lance les deux scripts à la suite tout se passe bien.
Je vais essayer de séparer chaque partie en définissant des fonctions puis une dernière fonction s'occupera de coordonner l'ensemble.
Dernière remarque, j'ai également eu l'idée d'insérer un

print(os.getcwd())

dans le gros script et là miracle j'ai obtenu le résultat escompté. Je ne vois absolument pas pourquoi l'insertion de cette instruction a fait que l'ensemble fonctionne mais c'est le cas.
@bipede : après ces nouveaux essais je penche vers ton hypothèse. Le problème est ailleurs la séparation des fonctions aura certainement un impact positif.
@pingouinux : j'ai eu l'idée mais étrangement, la commande print(source,destination) n'affichait rien. C'est encore un mystère.

Hors ligne

#5 Le 17/10/2018, à 13:56

albenic

Re : Python souci avec shutil.copy

Bonsoir,
j'ai segmenté mon script en quatre fonctions et maintenant tout fonctionne à merveille.
C'est peut-être la morale de ma mésaventure.
Merci de m'avoir mis sur la voie. Benoît.

Hors ligne