Concaténer des fichiers textes

Description

Permet de concaténer des fichiers de même type dans un fichier de sortie qui aura la même extension que les fichiers d'entrée.

Source / Exemple :


# -*- coding: cp1252 -*-
# Concaténation de fichiers textes pour l'impression groupée
#Ecrit et développé par Amaury

import os
import tkMessageBox
from Tkinter import *
import tkFileDialog

def lire(fichier):
    fic=open(fichier, "r")
    contenu=fic.read()
    fic.close()
    return contenu

def lister():
    global fichiers,dossier,d
    d = tkFileDialog.askdirectory(parent=root,initialdir="/",title='Choisir le dossier contenant les fichiers')
    print d + ":"
    fen=Tk()
    lbl=Label(fen,text="En cours ... Veuillez patienter")
    lbl.pack()
    f=[]
    f = os.listdir(d)
    fichiers = []
    for i in f:
        fichiers.append(i)
    for i in fichiers:
        print i
    fen.destroy()

def Concate():
    global fichiers,extension,d
    ext=extension.get()
    if len(ext)==0:
        tkMessageBox.showerror(title="Erreur",message="""Entrer une extension de fichier""")

    else:
        lister()
        a=0
        
        dest = tkFileDialog.askdirectory(parent=root,initialdir="/",title='Choisir le dossier cible')
        print dest
        fen=Tk()
        lbl=Label(fen,text="En cours ... Veuillez patienter")
        lbl.pack()
        fic=open(dest + "/Imprimable." +str(ext) ,"w")
        while a<len(fichiers):
            nom=str(fichiers[a]).split(".")
            if nom[len(nom)-1]==ext:
                fic.write(str(fichiers[a]))
                b=0
                fic.write(" ")
                while b<(80-len(str(fichiers[a]))):
                    fic.write("-")
                    b=b+1
                fic.write("\n\n")
                fic.write(lire(d+"/"+fichiers[a]))
                fic.write("\n\n")
            a=a+1
        fic.close()
        fen.destroy()
        root.quit()

root=Tk()
extension=Entry(root)
bou1=Button(root,text="Concaténer",command=Concate)
lbl1=Label(root,text="Extension sans le point")

bou1.grid(row=0,column=2)
extension.grid(row=0,column=1)
lbl1.grid(row=0,column=0)

root.mainloop()

Conclusion :


Pratique pour des impressions groupées

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.