#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
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 !
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...
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 là
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