IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

problème avec os.remove()


Sujet :

Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 125
    Par défaut problème avec os.remove()
    Bonjour,

    voilà j'ai un petit avec la fonction os.remove.
    voilà quand je lance le programme en double-cliquant, le programme me demande bien si je veux remplacer le fichier, mais en fait il ne supprime pas les données, par contre avec IDLE ça fonctionne.

    C'est juste pour savoir si vous avez rencontré le problème... c'est pas urgentissime du tout

    Voici le code correspondant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    # -*- coding:Latin-1 -*-
    from mst.GUM.complex.gum import *
    from math import pi
     
    import os
    import numpy
    import Tkinter
    import tkFileDialog
    import win32com.client
    #------------------------------------------------------------------------------------
    #------------------------------------------------------------------------------------
    #------------------------------------------------------------------------------------
    # Recherche des fichiers de mesures
    #------------------------------------------------------------------------------------
    #------------------------------------------------------------------------------------
    #------------------------------------------------------------------------------------
    #
    #------------------------------------------------------------------------------------
    # Gestion de la fenêtre Tk sous Tkinter
    #------------------------------------------------------------------------------------
     
    class messageOk(Tkinter.Tk):
      def __init__(self,parent,message):
        Tkinter.Tk.__init__(self,parent)
        self.parent = parent
        Tkinter.Label(self,text=message).grid(column=0,row=0)
        Tkinter.Button(self,text=u"Ok",command=self.ButtonOkClick).grid(column=0,row=1)
     
      def ButtonOkClick(self):
        self.destroy()
     
    #------------------------------------------------------------------------------------
    # Sélection des fichiers de mesure des diamètres et sélection du répertoire
    # d'enregistrement des résultats de la matrice S de la ligne
    #------------------------------------------------------------------------------------
    if __name__ == "__main__":
      app = messageOk(None,message="""Si vous avez choisi les fichiers correspondantaux petits
      et grands diamètres, alors cliquer sur Ok """)
      filePetitDiam = tkFileDialog.askopenfilename(filetypes = [("Fichier texte", "*.txt"),("Fichier Texte","*.txt")],
                                                   title = 'Sélection du fichier des petits diamètres')
      #print filePetitDiam
      fileGrandDiam = tkFileDialog.askopenfilename(filetypes = [("Txt", "*.txt"),("Fichier Texte","*.txt")],
                                                   title = 'Sélection du fichier des grands diamètres')
      #print fileGrandDiam
      directMatS = tkFileDialog.asksaveasfilename(initialdir='T:\Mesure dimensionnelle Paramètre S\Programme Python',
                                                  filetypes = [("Txt", "*.txt"),("Fichier Texte","*.txt")],
                                                  title = """'Sélection du répertoire pour l'enregistrement de la matrice S de la ligne""")
      print directMatS
      app.title('Choix des fichiers')
      app.mainloop()
    #------------------------------------------------------------------------------------
    #Gestion du fichiers des enregistrements des données de la matrice S de la ligne
    #------------------------------------------------------------------------------------
    try :
        file(directMatS)
        os.remove(directMatS) # Suppression du fichier s'il existe
        print 'le fichier a été supprimé et remplacé'
        matSFile = open(directMatS,'a') # Création du fichier et dénomination des colonnes
    except :
        print 'le fichier a été créé'
        matSFile = open(directMatS,'a') # Création du fichier et dénomination des colonnes
    Merci par avance

    Patricia

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je ne comprend pas le but du "file(directMatS)": il ne faut pas ouvrir le fichier pour le supprimer, et cela provoque une anomalie qui, en fait, te fait sauter à l'except, et donc ne supprime aucune donnée.

    De plus, le try..except me semble mal placé. Je suggère plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    import os
     
    directMatS = chemin=os.getcwd() + os.sep + "test.txt"  # exemple
     
    try :
        os.remove(directMatS) # Suppression du fichier s'il existe
        print "le fichier a été supprimé"
    except :
        print "erreur de suppression du fichier ou fichier n'existe pas ", directMatS
    try:
        matSFile = open(directMatS,'a') # Création du fichier et ouverture en mode ajout
        matSFile.close() # fermeture du fichier créé
        print "le fichier a été créé"
    except:
        print "erreur de création du fichier ", directMatS
    Le code ci-dessus fonctionne en console comme dans idle.

    Tyrtamos

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 125
    Par défaut merci pour tous ces conseils
    maintenant je comprends mieux mon pb.
    merci encore
    Patricia

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [vb2005] problème avec list.remove
    Par Kropernic dans le forum VB.NET
    Réponses: 15
    Dernier message: 27/10/2010, 15h32
  2. Réponses: 4
    Dernier message: 13/05/2009, 15h04
  3. Réponses: 3
    Dernier message: 12/04/2007, 10h47
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo