Imaginez que vous devez partager un fichier de quelques Go avec quelqu’un qui est sur le même réseau Wifi que vous.
Votre PC est sous WindowsXP (lol) et l’autre sous un OS bizarre.
Pas de clé USB assez grande, pas de logiciel de transfert multiplateforme… Hum!
Installez Python sur votre machine, et lancez la commande suivante depuis le dossier que vous voulez partager:
- Si vous avez Python2 :
python2 -m SimpleHTTPServer 8080
- Si vous avez Python3 :
python3 -m http.server 8080
Ca va lancer un serveur web sur sur votre ordinateur qui partage tous les fichiers contenus dans le dossier d’où vous avez lancé python.
Vous pouvez y accéder depuis votre navigateur web à l’adresse http://0.0.0.0:8080 en local.
Remplacez 0.0.0.0 dans l’adresse par l’adresse IP réseau(wifi) de l’ordinateur partageant les fichiers (ex:http://192.168.0.4:8080) et communiquez celle-ci à l’autre ordinateur. Il devrait normalement pouvoir y accéder aussi depuis son navigateur web et télécharger vos fichiers.
Dès que vous arrêtez le programme python, le serveur s’arrête et vous ne partagez plus rien. Attention à ne pas lancer cette commande depuis n’importe où sous peine de partager tout le contenu de son ordinateur. Attention aussi au fait que tout le monde sur le réseau peut télécharger les données partagées dès lors qu’il connaît l’adresse.
Mais ça peut bien dépanner pour partager un film, de la musique ou des bricoles depuis un vieux PC.
Oui, c’est très pratique. On peut même faire un fichier index.html sur le répertoire, et au lieu de présenter le contenu du répertoire, il affichera la page index.html.
Juste pour signaler une petite erreur. Pour Python 3,x la syntaxe c’est:
python3 -m http.server 8080 et non python -m http.server 8080
Voilààààààà.
@Sabcat, corrigé
Et comment on arrête le serveur? Je ne suis pas expert python…
Yoran, sur Artisan Numérique, pousse le concept un peu plus loin en ne permettant l’ouverture du serveur que pour un seul échange de fichiers, le serveur étant stoppé dès la transaction effectuée : http://artisan.karma-lab.net/serveur-http-a-usage-unique-transferer-fichiers
Par contre, pour Yoran, ce n’est pas du python mais du perl…
@jerry wham: Ctrl-C stoppe la commande en cours dans un terminal
Ok merci ;)
Ping Partager un fichier sur le réseau local avec BitTorrent et Transmission – Tuxicoman
mais comment on peut envoyer et récupérer les fichier dans un programme python???