N-PN White-Hat Project
[Python] Sauvegarde de fichier - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72)
+--- Forum : Langages interprétés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=27)
+--- Sujet : [Python] Sauvegarde de fichier (/showthread.php?tid=1907)



[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 Big Grin.
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 Big Grin
Donc si vous voyez des améliorations n'hésitez pas Big Grin
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 :trollSmile


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. Smile
Ca m'a l'air pas mal ton script continu comme ça !


RE: Sauvgarde de fichier - Saitek - 31-10-2012

Sympatoche Smile


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 Smile


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 Smile )


RE: Sauvegarde de fichier - sakiir - 01-11-2012

Ouai je fais comme Fr0g aussi !
Et si non ouai pas mal le code Smile