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

Réseau/Web Python Discussion :

Error: [Errno 2] No such file or directory: '/Enki v3/Pics/monfichier.png'


Sujet :

Réseau/Web Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet IT
    Inscrit en
    Mars 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet IT
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2024
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Error: [Errno 2] No such file or directory: '/Enki v3/Pics/monfichier.png'
    Bonjour à tous, et merci d'avance pour le temps que vous passerez à m'aider.

    Je souhaite intégrer dans un projet plus large un bout de code dont le rôle est de copier des fichiers depuis un partage SMB hébergé sur un raspberry pi
    Le serveur est fonctionnel, j'accède aux ressources depuis un autre raspberry pi et depuis windows sans aucune difficulté.
    J'ai également fait un chmod -R 777 ./ au niveau du repertoire qui contient les fichiers à copier.

    Toutefois en lançant le script ci-dessous, j'obtiens l'erreur :
    Error: [Errno 2] No such file or directory: '/Enki v3/Pics/Enki.png' -> Enki.png correspond au premier fichier contenu dans ma liste de fichiers

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    from smb.SMBConnection import SMBConnection
    import shutil
     
    # Crée une connexion avec les informations fournies
    conn = SMBConnection('pi', '8lue-Sp@rk', 'Rpi-Test', 'SRVPI-RPG', use_ntlm_v2=True)
     
    try:
        # Établit une connexion au serveur SMB
        conn.connect('192.168.1.27', 445)
     
        # Récupère la liste des fichiers dans le répertoire spécifié
        file_list = conn.listPath('HDD_USB1', '/Enki v3/Pics/')
     
        # Affiche la liste des fichiers
        for file in file_list:
            print(file.filename)
     
        del file_list[:2]
     
        #Parours la liste des fichiers
        for file in file_list:
            #Chemin complet du fichier existant
            remote_file_path = '/Enki v3/Pics/' + file.filename
            #Chemin complet du fichier local
            local_file_path = '/home/pi/Pathfinder/Pics/' + file.filename
            #Copie le fichier distant vers le répertoire local
            shutil.copy(remote_file_path, local_file_path)
            print(f"{file.filename} copié avec succès")
     
    except Exception as e:
        print("Error:", e)
     
    finally:
        # Ferme la connexion
        conn.close()
    J'avoue que je tourne en rond depuis quelques jours, aussi si quelqu'un pouvait me filer un petit coup de main, je vous en serais infiniment reconaissant

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    À mon avis il manque le chemin du disque avant '/Enki v3/Pics/Enki.png'

    Exemple, j'ai un disque dur externe pour lequel les chemins des fichiers sont '/media/vincent/Archives/docu/foo.txt'.
    Note la partie en gras.

    Si tu ne sais pas quoi mettre, copie un fichier sur ce disque et colle-le dans un éditeur de texte, le nom complet s'affichera.

  3. #3
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    bonjour

    Si je comprends, tu désires récupérer en local un fichier sur serveur samba.

    Il faut lire la doc de ta librairie ! ici, tu essayes de copier un fichier local en local, avec samba, il faut le "télécharger" et c'est une commande smb
    $moi= ( !== ) ? : ;

  4. #4
    Candidat au Club
    Homme Profil pro
    Chef de projet IT
    Inscrit en
    Mars 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet IT
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2024
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci à tous les deux, pour vos réponses je vais regarder ça ce soir et je vous tiens au courant.

  5. #5
    Candidat au Club
    Homme Profil pro
    Chef de projet IT
    Inscrit en
    Mars 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet IT
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2024
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bon après de multiples recherches sur les forums, quelques tatônements, un peu de chance et mes discussions avec chat GPT, j'ai trouvé un script que j'ai pu adapter à mon cas et qui fonctionne.

    Je le partage ici, si jamais celà pouvait s'avérer utile pour un autre lecteur.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    from smb.SMBConnection import SMBConnection
     
    # Informations de connexion SMB
    ip_serveur = '192.168.x.x'
    nom_utilisateur = 'pi'
    mot_de_passe = 'Mypassword'
    nom_partage = 'HDD_USB1'
    repertoire_smb = '/Enki v3/Pics/'
     
    # Répertoire local de destination
    repertoire_local = '/home/pi/Pathfinder/Pics/'
     
    try:
        # Crée une connexion SMB
        conn = SMBConnection(nom_utilisateur, mot_de_passe, 'Rpi-Test', 'SRVPI-RPG', use_ntlm_v2=True)
     
        # Établit une connexion au serveur SMB
        if conn.connect(ip_serveur, 445):
            print("Connexion établie avec succès au serveur SMB.")
     
            # Récupère la liste des fichiers dans le répertoire partagé
            file_list = conn.listPath(nom_partage, repertoire_smb)
     
            # Parcourt la liste des fichiers
            for file in file_list:
                # Chemin complet du fichier sur le serveur SMB
                remote_file_path = repertoire_smb + file.filename
                # Chemin complet du fichier local
                local_file_path = repertoire_local + file.filename
                try:
                    # Copie le fichier depuis le serveur SMB vers le répertoire local
                    with open(local_file_path, 'wb') as local_file:
                        conn.retrieveFile(nom_partage, remote_file_path, local_file)
                        print(f"Le fichier {file.filename} a été copié avec succès.")
                except Exception as e:
                    print(f"Erreur lors de la copie du fichier {file.filename}: {e}")
        else:
            print("Échec de la connexion au serveur SMB.")
     
    except Exception as e:
        print(f"Erreur lors de la connexion au serveur SMB: {e}")
     
    finally:
        # Ferme la connexion SMB
        conn.close()
    Bonne journée à tous.

    PS : Je marquerai ce fil comme résolu d'ici quelques jours

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    Citation Envoyé par BlueSpark Voir le message
    Bon après de multiples recherches sur les forums, quelques tatônements, un peu de chance et mes discussions avec chat GPT, j'ai trouvé
    Je trouve cela fou de chercher partout sauf chez le développeur de la librairie ! C'est pourtant à cet endroit que nous allons trouver la personne qui connait le mieux cette librairie...

    https://pysmb.readthedocs.io/en/late...onnection.html
    Et je ne parle pas des tests qui sont toujours une excellente source d'infos...
    https://github.com/50onRed/pysmb/blo...istpath.py#L62
    https://github.com/50onRed/pysmb/blo...evefile.py#L84

    Et, si tu as lu la doc, tu as déjà vu qu'il y a aussi un autre moyen de télécharger (mais pas lister)
    https://pysmb.readthedocs.io/en/late...MBHandler.html
    $moi= ( !== ) ? : ;

  7. #7
    Candidat au Club
    Homme Profil pro
    Chef de projet IT
    Inscrit en
    Mars 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet IT
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2024
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par papajoker Voir le message
    Je trouve cela fou de chercher partout sauf chez le développeur de la librairie ! C'est pourtant à cet endroit que nous allons trouver la personne qui connait le mieux cette librairie...

    https://pysmb.readthedocs.io/en/late...onnection.html
    Et je ne parle pas des tests qui sont toujours une excellente source d'infos...
    https://github.com/50onRed/pysmb/blo...istpath.py#L62
    https://github.com/50onRed/pysmb/blo...evefile.py#L84
    Bonsoir cher Papajoker,

    merci pour vos conseils aussi éclairés qu'acidulés. Je ne cherche pas à polémiquer, mais peut-être qu'un mot bienveillant eut été de mise, d'autant que le but recherché est atteint. Pour ce qui me concerne je préfère les autres forums que je trouve moins arrides, même si j'avoue avoir consulté le premier que vous citez. Je pratique la programmation en dilletante et par plaisir, aussi je n'ai ni la formation académique que vous devez sans doute avoir, ni la rigidité des vos paroles que d'aucuns pourraient trouver un tant soit peu amères. J'avais pensé, à tort sans doute, qu'un forum tel que celui ci, avait pour but d'aider les gens et les guider et non être un renvoi sec et tranchant vers un document technique que le béotien que je suis ne peut suivre qu'avec difficulté. Mais j'ai dû, de toute évidence, faire ereur.

    Très bonne soirée à tous.

  8. #8
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    Citation Envoyé par BlueSpark Voir le message
    les guider
    C'est justement mon but, en voulant que les codeurs ne se dispersent pas lorsqu'ils cherchent une info !
    Ici, j'ai répondu de façon générique (donc pas uniquement pour toi), il y a bien sûr des raisons à ne pas trouver son bonheur dans la documentation (Allergique à l'anglais, niveau trop bas pour comprendre le code, ...). Simplement, cela doit être le premier réflexe. Et avec de la doc, on apprend plus qu'en faisant des copier/coller, ce qui n'est pas négligeable.

    Bonne soirée à toi.
    $moi= ( !== ) ? : ;

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/02/2022, 12h16
  2. [Python 2.X] "IOError: [Errno 2] No such file or directory" a l'extraction d'une archive zip
    Par Toug19 dans le forum Général Python
    Réponses: 3
    Dernier message: 02/10/2018, 09h18
  3. [Python 3.X] FileNotFoundError: [Errno 2] No such file or directory
    Par F6AAP dans le forum Général Python
    Réponses: 0
    Dernier message: 17/03/2017, 19h49
  4. [SDL_TTF] error: SDL_ttf.h: No such file or directory|
    Par syrine01 dans le forum SDL
    Réponses: 3
    Dernier message: 23/05/2015, 22h32
  5. fatal error: iostream.h: No such file or directory
    Par pouti dans le forum Débuter
    Réponses: 3
    Dernier message: 02/03/2014, 17h42

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