[Python] Sauvegarde de fichier - Dr.Jekyll - 13-02-2012
Salut à tous, je vais partager avec vous un, certes petit script, mais un script quand même =). J'ai fait ce script surtout pour m'entrainer dans python .
Ce script permet de sélectionner un dossier et de le mettre sous la forme d'une archive tar, et collez la sauvegarde, dans le dossier /home/votrelogin/Archive.
Comme vous l'aurez compris, il ne marche pour l'instant que sous Linux.
Je vais donc essayé de l'adapter pour la portabilité avec windows 
Donc si vous voyez des améliorations n'hésitez pas 
Code PYTHON :
# /usr/bin/python
# - * - coding: Latin-1 - *
#######################################################
#Author : Angelo
#Date : 11.02.2012
#Website :Angelo.otaku-ana.net
#Thanks to : Fr0g, Daft
#This program is free,distribuate with a GNU Licence.
#######################################################
import shutil
import os
import tarfile
import time
reponse_a = str();# Variable pour quitter
position = str(); # Curseur de la position actuelle
add = str(); #Variable pour quitter l'ajout d'un dossier enfant,
# et ajout d'un nouveau répértoire
local = os.environ['USER']; # Nom d'utilisateur
nom = time.strftime('%d-%m-%y-%H:%M',time.localtime())
heure = time.strftime('%H:%M',time.localtime())
if os.name == "posix": #Si le système est de type Unix
cible = '/home/'+local;
lo = 'Linux';
else :
lo = 'Windows'
print (nom)#Affiche l'heure et la date
print("Vous etes sous : {0}".format(lo));
print("Pour quitter appuyer sur q sinon sur entrez \n");
reponse_a = raw_input('> '); #Savoir si l'utilisateur veut rester
reponse_a = reponse_a.lower();#Convertir majucule en minuscules
while reponse_a != "q":
os.system('clear')
position = os.getcwd();#Répértoire courant
print("Le repertoire est: {0},il est {1}".format(position,heure));
liste = os.listdir(position);
print("----------------------------------------------------------");
print(liste);
print("----------------------------------------------------------");
print("Pour rentrer dans un autre repertoire");
print("Entrez seulement son nom");
print("Pour terminer, lancer la commande : stop");
print("Pour remonter d'un repertoire taper '..'")
print("----------------------------------------------------------");
add = "/"+raw_input('> ');
if add !="/stop":
try:
position = position + add; #Calcul la nouvelle postion
os.chdir(position); #Va à la nouvel position
os.system('clear')
except:
print("Erreur mauvais repertoire,\n appuyer sur entrez");
raw_input();
os.system('clear')
else:
break;
os.system('clear')
print("Le repertoire choisi est : {0}".format(position));
print("Creation de l'archive en cours ...");
Archive = tarfile.open('Archive','w');
Archive.add(position);
print("Creation de l'archive terminé !");
Archive.close;
os.chdir(cible); # Va au repertoire /home/login
os.system('mkdir Archive'); # Crer le dossier Archive
src = position+"/"+"Archive";
dst = "/{0}/Archive/{1}".format(cible,nom); # Destination a
# /home/login/Archive et renomme le fichier a la date.
shutil.move(src,dst); #Deplace le fichier
print("Deplacement finit, le fichier ce trouve a /home/login/Archive");
print("Merci d'avoir utiliser ce programme");
RE: Sauvgarde de fichier - Di0Sasm - 13-02-2012
Le but c'est l'apprentissage donc, merci d'avoir posté ce script, ça pourrais donner des envies à certains de coder ou même d'apprendre le langage python.
RE: Sauvgarde de fichier - Dobry - 14-02-2012
Ah tu as finalement trouvé les variables d’environnement, bien joué (à part que c'est python 3 que tu utilises :troll
RE: Sauvgarde de fichier - Zhyar - 15-02-2012
Ca fait plaisir de voir que tu fais pas que de manger des nouilles en cube sur Minecraft. 
Ca m'a l'air pas mal ton script continu comme ça !
RE: Sauvgarde de fichier - Saitek - 31-10-2012
Sympatoche
RE: Sauvgarde de fichier - Swissky - 31-10-2012
Je n'utilise pas python mais on peut pas réduire ton code ?
du style transformer :
print("----------------------------------------------------------");
print("Pour rentrer dans un autre repertoire");
print("Entrez seulement son nom");
print("Pour terminer, lancer la commande : stop");
print("Pour remonter d'un repertoire taper '..'")
print("----------------------------------------------------------");
en
print("----------------------------------------------------------/n Pour rentrer dans un autre repertoire");?
Je dis ça parce que j'aime pas les répétitions inutile de echo, print, printf etc ^^
RE: Sauvgarde de fichier - Luxerails - 31-10-2012
Personellement je préfère lire
Citation :print("----------------------------------------------------------");
print("Pour rentrer dans un autre repertoire");
print("Entrez seulement son nom");
print("Pour terminer, lancer la commande : stop");
print("Pour remonter d'un repertoire taper '..'")
print("----------------------------------------------------------");
que
Citation :print("----------------------------------------------------------\nPour rentrer dans un autre repertoire\nEntrez seulement son nom\nPour terminer, lancer la commande : stop\nPour remonter d'un repertoire taper '..'\n----------------------------------------------------------");
...
RE: Sauvgarde de fichier - ThibauT - 31-10-2012
(31-10-2012, 21h23)Luxerails a écrit : Personellement je préfère lire
Citation :print("----------------------------------------------------------");
print("Pour rentrer dans un autre repertoire");
print("Entrez seulement son nom");
print("Pour terminer, lancer la commande : stop");
print("Pour remonter d'un repertoire taper '..'")
print("----------------------------------------------------------");
que
Citation :print("----------------------------------------------------------\nPour rentrer dans un autre repertoire\nEntrez seulement son nom\nPour terminer, lancer la commande : stop\nPour remonter d'un repertoire taper '..'\n----------------------------------------------------------");
...
Moi de même, c'est plus agréable et plus lisible.
Sinon, merci pour ce script
RE: Sauvgarde de fichier - Swissky - 31-10-2012
Alors je retire ce que j'ai dis , je dois avoir de mauvaises habitudes de codage xD
RE: Sauvgarde de fichier - fr0g - 01-11-2012
(31-10-2012, 20h22)Swissky a écrit : Je n'utilise pas python mais on peut pas réduire ton code ?
du style transformer :
print("----------------------------------------------------------");
print("Pour rentrer dans un autre repertoire");
print("Entrez seulement son nom");
print("Pour terminer, lancer la commande : stop");
print("Pour remonter d'un repertoire taper '..'")
print("----------------------------------------------------------");
en
print("----------------------------------------------------------/n Pour rentrer dans un autre repertoire");?
Je dis ça parce que j'aime pas les répétitions inutile de echo, print, printf etc ^^
Pour python 2.* comme ça :
Code : print """
Your text
"""
Mais je pense pas que ça marche en python3 essayes toujours on sait jamais ^^, (btw 2.7 ftw )
RE: Sauvegarde de fichier - sakiir - 01-11-2012
Ouai je fais comme Fr0g aussi !
Et si non ouai pas mal le code
|