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 :

Fichier vide lors de l'ajout au ZipFile


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut Fichier vide lors de l'ajout au ZipFile
    Bonjour,
    j'ai fait une fonction pour ajouter un fichier .txt a mon zip mais quand j'ouvre l'archive, le fichier README.txt est vide, 0kb... Comment ça se fait s'il vous plait ? Merci

    Code python : 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
    def generateData(file, win):
        with zipfile.ZipFile(file) as zf:
            #Creer archive de data
            with zipfile.ZipFile(file.split('.')[0]+'_data.zip', mode='w') as zfnew:
                with open('README.txt', mode='a+') as readme:
                    readme.write('This zip has been generated on {DATE}')
                    zfnew.write(os.path.basename(readme.name))
                os.remove('README.txt')
            for filename in zf.namelist():
                if not os.path.isdir(filename):
                    newName = filename.split('.')[0]+'_data.'+filename.split('.')[-1]
                    #pour chaque fichier on va passer les fonctions de data
                    #.....
                    newFile = open(newName, mode='w+')
                    zfnew = zipfile.ZipFile(str(file.split('.')[0])+'_data.zip', mode='a')
                    try:
                        zfnew.write(os.path.basename(newFile.name))    
                    finally:
                        newFile.close()
                        zfnew.close()
                    os.remove(os.path.basename(newFile.name))
        lb = ttk.Label(win, width=300, text="Your zip of data has been generated", anchor="center")
        lb.pack()

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Est-ce que ce que vous écrivez fait plus d'1 kb ? Je ne pense pas...

    Entre parenthèses, votre code fait à peu près cette taille

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Est-ce que ce que vous écrivez fait plus d'1 kb ? Je ne pense pas...

    Entre parenthèses, votre code fait à peu près cette taille
    Ah oui pardon, le fait que le fichier soit totalement vide quand je l'ouvre signifie qu'il y a un problème quelque part tout de même

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Si vous parlez de README.TXT, vous savez que vous avez fait une demande de suppression avec os.remove ?

    Comment apercevez-vous son contenu ?

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut
    Bah oui, je crée le Readme, j’écris dedans, je l'ajoute a l'archive et je supprime le fichier. Donc il est dans l'archive mais plus dans le répertoire courant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zfnew.write(os.path.basename(readme.name))

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Est-ce que le fichier README.TXT est bien créé à l'emplacement souhaité (supprimez le et retentez afin de vérifier s'il se retrouve au même emplacement)

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/06/2017, 15h47
  2. [SP-2013] Ajout d'un fichier vide
    Par P'tite_Lily dans le forum SharePoint
    Réponses: 4
    Dernier message: 19/08/2016, 11h54
  3. Cellule vide lors de la lecture d'un fichier Excel par OLEDB
    Par seb.49 dans le forum Framework .NET
    Réponses: 4
    Dernier message: 06/02/2010, 18h52
  4. Réponses: 3
    Dernier message: 12/04/2008, 12h05
  5. Réponses: 33
    Dernier message: 15/10/2004, 16h19

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