Contenu | Rechercher | Menus

Annonce

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.

#1 Le 27/03/2014, à 12:57

Gaara

[résolu] [python] copier un fichier dans le réseau local

Bonjour les pros du python,

J'essaie d'écrire un petit script pour me faciliter la vie... Mais là je bloque.

print "commencer la copie"   
chemin_pi = r'//192.168.2.2:22/home/pi/Stock'
fichier_pc = chemin_fichier + "/" + fichier
rfichier_pc = fichier_pc
print "le fichier à copier est: ", fichier_pc
fichier_pi = "/" + fichier

shutil.copy2(fichier_pc, chemin_pi + fichier_pi)

Le (ou les) problèmes sont:
1 - Je ne sais pas si l'adresse du pi est bien saisie (surtout au niveau du port)
2 - Je sais qu'il faut mettre "r" devant la chaine des chemins (mais je ne sais pas pourquoi)
3 - Le chemin du fichier à copier est une variable, donc comment ajouter ce "r"?
4 - Faut-il se connecter au réseau avant d'essayer de copier?

Actuellement j'ai cette erreur:

 IOError: [Errno 2] Aucun fichier ou dossier de ce type: '//192.168.2.2:22/home/pi/Stock/exemple.txt'

Jusqu'à présent je copiais mes fichiers à la main grâce à Dolphin, qui arrive à se connecter.
Merci

Dernière modification par gaara92 (Le 27/03/2014, à 19:02)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#2 Le 27/03/2014, à 14:34

Kooothor

Re : [résolu] [python] copier un fichier dans le réseau local

C'est quoi l'avantage de ce script par rapport à

scp fichier pi:

?

Hors ligne

#3 Le 27/03/2014, à 15:00

Gaara

Re : [résolu] [python] copier un fichier dans le réseau local

Salut, merci pour ta réponse.
En fait c'est juste un bout de script. Avant de copier, il sélectionne quel fichier copier.
J'écris en python car je trouve que c'est plus simple que le bash... malgré les difficultés. (je débute)
Ceci dit, je peux m'inspirer de ton code et forker du bash, car je n'avais pas pensé à ssh!


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#4 Le 27/03/2014, à 15:32

Kooothor

Re : [résolu] [python] copier un fichier dans le réseau local

Ben en fait (à part apprendre) je ne vois pas l'utilité de ton script. Perso je passe mon temps à envoyer des fichiers sur mon Raspberry Pi via ssh. Une fois que t'as mis ta clé publique dans /home/pi/.ssh/authorized_keys ça roule tout seul !

Et tu peux même le combiner avec find, par exemple pour balancer sur le pi tous les fichiers .jpg qui se trouvent sur le bureau puis les supprimer :

find ~/Desktop -name '*.jpg' -exec scp {} pi: \; -delete 

(il faut avoir ça dans ton fichier .ssh/config :

Host pi
Hostname 192.168.0.2
User pi

)

@+
~ktr

Dernière modification par Kooothor (Le 27/03/2014, à 15:34)

Hors ligne

#5 Le 27/03/2014, à 16:54

Gaara

Re : [résolu] [python] copier un fichier dans le réseau local

Oui, pour la clé je l'avais fait avant.
J'ai besoin de copier des gros fichiers sur le pi, qui est branché sur un dd de 1To. Une sorte de Nas..
Finalement j'ai réussi avec ce script:

import subprocess
adresse = "pi@192.168.2.2:"
fichier = 'nom_du_fichier.mkv'
fichier_pc = '/home/user_pc/chemin/du/fichier'
chemin_pi = '/home/pi/Stock/' 
fichier_pi = adresse + chemin_pi + fichier

command = 'scp', fichier_pc, fichier_pi
p = subprocess.Popen(command, shell=False)

C'est peut-être pas une solution très propre pour un puriste du python, mais ça marche.
Merci beaucoup du coup de main smile


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#6 Le 27/03/2014, à 17:01

Kooothor

Re : [résolu] [python] copier un fichier dans le réseau local

... ou comment faire compliqué quand on peut faire simple ! tongue

Hors ligne

#7 Le 27/03/2014, à 17:07

Gaara

Re : [résolu] [python] copier un fichier dans le réseau local

C'est juste les deux dernières lignes qui sont importantes hein !!
Nan mais après, j'intègre tout ça dans une notification en Gtk, avec une barre de progression et tout le bazar... big_smile
Sinon ça ne serait pas marrant...
C'est pourquoi j'ai besoin d'utiliser python !


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#8 Le 27/03/2014, à 19:02

Gaara

Re : [résolu] [python] copier un fichier dans le réseau local

Sinon, pour ceux que ça interesse:
Il y a un module python nommé paramiko (python 2)

sudo apt-get install python-paramiko

Ensuite les commandes sont ici, et un exemple

Dernière modification par gaara92 (Le 27/03/2014, à 19:03)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne