Txt vers Html & Autres Demandes.
Fermé
Stephane25091978
Messages postés
16
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
28 mai 2020
-
28 mai 2020 à 21:54
jee pee Messages postés 40812 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 février 2025 - 31 mai 2020 à 19:03
jee pee Messages postés 40812 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 février 2025 - 31 mai 2020 à 19:03
A voir également:
- Autoit html
- Editeur html - Télécharger - HTML
- Autoit - Télécharger - Divers Utilitaires
- &Nbsp html ✓ - Forum Webmastering
- [HTML] - á et les autres - Forum HTML
- Espace en html - Astuces et Solutions
2 réponses
jee pee
Messages postés
40812
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 février 2025
9 526
Modifié le 29 mai 2020 à 18:48
Modifié le 29 mai 2020 à 18:48
Bonjour,
Pour répondre à ta problématique, je ne connais pas de logiciel qui pourrait faire un tel traitement de fichiers.
Comme de nombreux intervenants du forum, informaticiens ou passionnés d'informatique, pour réaliser cela nous écririons un script de commande, voire un programme. Un .cmd sous Windows, un shell sous linux, ...
J'ai regardé pour un script sous Windows, mais la boucle de traitement des lignes d'un fichier omet les lignes vides.
Je voulais depuis quelque temps utiliser le langage Python, qui permet de faire à la fois des scripts et des programmes. Alors j'ai installé un environnement et j'ai réalisé un embryon de script pour traiter ces fichiers txt. J'en ai récupéré 3 sur ton site pour tester.
Là le script ne fait que rajouter les balises <li> et </li>.
Si cette solution t’intéresse (il te faudrait installer Python), je peux étendre les fonctionnalités de ce script pour traiter les autres points.
Par exemple en tête, il faudrait insérer les balises de base d'un html, et en fin de fichier les fermer. Il pourrait y avoir un lien retour arrière, ou retour au menu. Les balises <li> devraient être englobées dans des balises <ul>. Pour les fichiers qui contiennent des coffrets, avec plusieurs CD ou DVD, il faudrait identifier les titres de chaque support pour ne pas mettre une puce (en fait une ligne seule entre 2 lignes blanches).
A noter que dans certains fichiers, il y a une numérotation redondante, qui sera encore amplifiée par les puces de liste.
Cordialement
Pour répondre à ta problématique, je ne connais pas de logiciel qui pourrait faire un tel traitement de fichiers.
Comme de nombreux intervenants du forum, informaticiens ou passionnés d'informatique, pour réaliser cela nous écririons un script de commande, voire un programme. Un .cmd sous Windows, un shell sous linux, ...
J'ai regardé pour un script sous Windows, mais la boucle de traitement des lignes d'un fichier omet les lignes vides.
Je voulais depuis quelque temps utiliser le langage Python, qui permet de faire à la fois des scripts et des programmes. Alors j'ai installé un environnement et j'ai réalisé un embryon de script pour traiter ces fichiers txt. J'en ai récupéré 3 sur ton site pour tester.
Là le script ne fait que rajouter les balises <li> et </li>.
import os dir_orig="D:/Dev/@txt2html/fic/" dir_dest="D:/Dev/@txt2html/fic/" for file in os.listdir(dir_orig): if file.endswith(".txt"): ficin=os.path.join(dir_orig, file) ficout=os.path.join(dir_dest,os.path.splitext(file)[0]+'.html') print(ficin, ficout) with open(ficin, "r") as filin, open(ficout, "w") as filout: for line in filin: if line != "\n": filout.write("{}".format("<li>"+line.rstrip()+"</li>\r"))
Si cette solution t’intéresse (il te faudrait installer Python), je peux étendre les fonctionnalités de ce script pour traiter les autres points.
Par exemple en tête, il faudrait insérer les balises de base d'un html, et en fin de fichier les fermer. Il pourrait y avoir un lien retour arrière, ou retour au menu. Les balises <li> devraient être englobées dans des balises <ul>. Pour les fichiers qui contiennent des coffrets, avec plusieurs CD ou DVD, il faudrait identifier les titres de chaque support pour ne pas mettre une puce (en fait une ligne seule entre 2 lignes blanches).
A noter que dans certains fichiers, il y a une numérotation redondante, qui sera encore amplifiée par les puces de liste.
1. Chapitre 1 : Les Rouges Ont Gagnés!
2. Chapitre 2 : Les Meilleurs Ennemis Du Monde
3. Chapitre 3 : On Baptise Lénine
Cordialement
jee pee
Messages postés
40812
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 février 2025
9 526
31 mai 2020 à 19:03
31 mai 2020 à 19:03
J'ai profité de l'occasion pour écrire mon premier script en Python. Comme je le pensais ce langage se prête bien au traitement d'un fichier texte.
Le résultat sur quelques fichiers, originaux et convertis :
Texte d'origine - Amy Winehouse : Back To Black
Fichier converti html - Amy Winehouse : Back To Black
Texte d'origine - Barry White : The Very Best Of Barry White (Coffret Trois Cd)
Fichier converti html - Barry White : The Very Best Of Barry White (Coffret Trois Cd)
Texte d'origine - Genesis * (1973) * Selling England By The Pound
Fichier converti html - Genesis * (1973) * Selling England By The Pound
Le script comporte des options dans le traitement des fichiers.
1/ Comme le rendu visuel n'est pas la conversion avec une lecture du texte par un logiciel, avoir des sauts de lignes pourrait être utile, voilà les 2 versions, avec et sans saut de ligne entre les blocs :
Fichier converti html - Amy Winehouse : Back To Black
Fichier converti html avec saut de ligne - Amy Winehouse : Back To Black
Fichier converti html - Barry White : The Very Best Of Barry White (Coffret Trois Cd)
Fichier convertihtml avec saut de ligne - Barry White : The Very Best Of Barry White (Coffret Trois Cd)
2/ Dans certains fichiers il y a un texte redondant numéro + numéro de chapitre, on peut corriger cette présentation :
Texte d'origine - Don Camillo - L'Intégrale (Coffret 8 Dvd)
Fichier converti html sans traitement - Don Camillo - L'Intégrale (Coffret 8 Dvd)
Fichier converti html suppression numéro - Don Camillo - L'Intégrale (Coffret 8 Dvd)
Fichier converti html suppression chapitre - Don Camillo - L'Intégrale (Coffret 8 Dvd)
Le script utilisé :
Le résultat sur quelques fichiers, originaux et convertis :
Texte d'origine - Amy Winehouse : Back To Black
Fichier converti html - Amy Winehouse : Back To Black
Texte d'origine - Barry White : The Very Best Of Barry White (Coffret Trois Cd)
Fichier converti html - Barry White : The Very Best Of Barry White (Coffret Trois Cd)
Texte d'origine - Genesis * (1973) * Selling England By The Pound
Fichier converti html - Genesis * (1973) * Selling England By The Pound
Le script comporte des options dans le traitement des fichiers.
1/ Comme le rendu visuel n'est pas la conversion avec une lecture du texte par un logiciel, avoir des sauts de lignes pourrait être utile, voilà les 2 versions, avec et sans saut de ligne entre les blocs :
Fichier converti html - Amy Winehouse : Back To Black
Fichier converti html avec saut de ligne - Amy Winehouse : Back To Black
Fichier converti html - Barry White : The Very Best Of Barry White (Coffret Trois Cd)
Fichier convertihtml avec saut de ligne - Barry White : The Very Best Of Barry White (Coffret Trois Cd)
2/ Dans certains fichiers il y a un texte redondant numéro + numéro de chapitre, on peut corriger cette présentation :
Texte d'origine - Don Camillo - L'Intégrale (Coffret 8 Dvd)
Fichier converti html sans traitement - Don Camillo - L'Intégrale (Coffret 8 Dvd)
Fichier converti html suppression numéro - Don Camillo - L'Intégrale (Coffret 8 Dvd)
Fichier converti html suppression chapitre - Don Camillo - L'Intégrale (Coffret 8 Dvd)
Le script utilisé :
# txt2html - conversion fichier texte support médiathèque en html import os,re dir_orig="D:/Dev/Python/Exe/txt2html/fic/" # repertoire des fichiers origine txt dir_dest="D:/Dev/Python/Exe/txt2html/fic/" # repertoire des nouveaux fichiers html plus_br=False # ajout ou pas saut de ligne (True ou False) def trait_ligne(nligne): # retraitement ligne redondance numero trait_type=1 # supprimer 0=rien, 1=n°, 2=Chapitre if re.search(" Chapitre [0-9][0-9]* : ", nligne): if trait_type == 2: nligne=re.sub(r" Chapitre [0-9][0-9]* : ", r" ", nligne) elif trait_type == 1: nligne=re.sub(r"^[0-9][0-9]*. ", r"", nligne) return(nligne) for file in os.listdir(dir_orig): # boucle sur liste des fichiers if file.endswith(".txt"): ficin=dir_orig + file ficout=dir_dest + os.path.splitext(file)[0] + ".html" entete=False puce=False vide=False sligne="" with open(ficin, "r") as filin, open(ficout, "w") as filout: for ligne in filin: # boucle sur lignes d'un fichier ligne=ligne.rstrip() if ligne != "": if not entete: # entete du html filout.write("{}\r".format("<!doctype html>")) filout.write("{}\r".format("<html>")) filout.write("{}\r".format("<head>")) filout.write("{}\r".format(" <title>" + ligne + "</title>")) filout.write("{}\r".format("</head>")) filout.write("{}\r".format("<body>")) filout.write("{}\r".format("<h3>" + ligne + "</h3>")) entete=True vide=False elif puce: filout.write("{}\r".format("<li>" + trait_ligne(ligne) + "</li>")) elif vide: sligne=ligne vide=False else: if plus_br: filout.write("{}\r".format("<br>")) filout.write("{}\r".format("<ul>")) if sligne != "": filout.write("{}\r".format("<li>" + trait_ligne(sligne) + "</li>")) sligne="" filout.write("{}\r".format("<li>" + trait_ligne(ligne) + "</li>")) puce=True else: if puce: filout.write("{}\r".format("</ul>")) puce=False if sligne != "": if plus_br: filout.write("{}\r".format("<br>")) filout.write("{}\r".format("<h4>" + trait_ligne(sligne) + "</h4>")) sligne="" vide=True if puce: filout.write("{}\r".format("</ul>")) puce=False # fin page html filout.write("{}\r".format("<br><a href=\"javascript:history.back()\">Page Précédente</a>")) filout.write("{}\r".format("</body>")) filout.write("{}\r".format("</html>"))