Je souhaiterais écrire un script qui prélève certaines zones de texte
dans un fichier.
Par exemple,
\section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
\section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
Je sais comment faire pour l'écriture dans le fichier.
Auriez-vous un idée ? Un lien utile ?
N'ai-je pas d'autre solution que d'utiliser le module re ?
Merci.
Rémi.
Je souhaiterais écrire un script qui prélève certaines zones de texte dans un fichier. Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
Je sais comment faire pour l'écriture dans le fichier. Auriez-vous un idée ? Un lien utile ? N'ai-je pas d'autre solution que d'utiliser le module re ?
Si - écrire une grammaire formelle et un parser spécialisé par exemple. Mais je ne suis pas sur que ce soit justifié.
A toutes fins utiles, le livre Text Processing in Python de David Mertz aborde ce genre de problème : http://gnosis.cx/TPiP/
Pas mieux... Bruno
Bonjour,
Je souhaiterais écrire un script qui prélève certaines zones de texte
dans un fichier.
Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
Je sais comment faire pour l'écriture dans le fichier.
Auriez-vous un idée ? Un lien utile ?
N'ai-je pas d'autre solution que d'utiliser le module re ?
Si - écrire une grammaire formelle et un parser spécialisé par exemple.
Mais je ne suis pas sur que ce soit justifié.
A toutes fins utiles, le livre Text Processing in Python de David Mertz
aborde ce genre de problème :
http://gnosis.cx/TPiP/
Je souhaiterais écrire un script qui prélève certaines zones de texte dans un fichier. Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
Je sais comment faire pour l'écriture dans le fichier. Auriez-vous un idée ? Un lien utile ? N'ai-je pas d'autre solution que d'utiliser le module re ?
Si - écrire une grammaire formelle et un parser spécialisé par exemple. Mais je ne suis pas sur que ce soit justifié.
A toutes fins utiles, le livre Text Processing in Python de David Mertz aborde ce genre de problème : http://gnosis.cx/TPiP/
Pas mieux... Bruno
yves
On Sat, 12 Mar 2005 11:35:10 +0100, remi wrote:
Bonjour,
Je souhaiterais écrire un script qui prélève certaines zones de texte dans un fichier. Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
Je sais comment faire pour l'écriture dans le fichier. Auriez-vous un idée ? Un lien utile ? N'ai-je pas d'autre solution que d'utiliser le module re ?
Le bout de code (goret) que j'avais posté ici ne convient pas? (http://minilien.com/?XEbWMzm91x)
Peux-tu détailler le problème, dans ce cas?
-- Yves
On Sat, 12 Mar 2005 11:35:10 +0100, remi <remi@non.com> wrote:
Bonjour,
Je souhaiterais écrire un script qui prélève certaines zones de texte
dans un fichier.
Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
Je sais comment faire pour l'écriture dans le fichier.
Auriez-vous un idée ? Un lien utile ?
N'ai-je pas d'autre solution que d'utiliser le module re ?
Le bout de code (goret) que j'avais posté ici ne convient pas?
(http://minilien.com/?XEbWMzm91x)
Je souhaiterais écrire un script qui prélève certaines zones de texte dans un fichier. Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
Je sais comment faire pour l'écriture dans le fichier. Auriez-vous un idée ? Un lien utile ? N'ai-je pas d'autre solution que d'utiliser le module re ?
Le bout de code (goret) que j'avais posté ici ne convient pas? (http://minilien.com/?XEbWMzm91x)
Peux-tu détailler le problème, dans ce cas?
-- Yves
remi
Bonjour,
Je souhaiterais écrire un script qui prélève certaines zones de texte dans un fichier. Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
[...]
Si - écrire une grammaire formelle et un parser spécialisé par exemple. Mais je ne suis pas sur que ce soit justifié.
A toutes fins utiles, le livre Text Processing in Python de David Mertz aborde ce genre de problème : http://gnosis.cx/TPiP/
Merci pour ce lien utile !
Sinon, je pensai, dans un premier temps, écrire le texte sous la forme : section{Titre 1}
texte{texte à prélever et à stocker dans un fichier (numéro 1)}
section{Titre 2}
texte{texte à prélever et à stocker dans un fichier (numéro 2)}
et utiliser le module re en faisant qqch du style :
listes_textes = [] for ligne in file_in: listes_textes.extend(re.findall('\texte{.*}',ligne))
Je pense obtenir ainsi la liste des paragraphes... Je vais tester. Rémi.
Bonjour,
Je souhaiterais écrire un script qui prélève certaines zones de texte
dans un fichier.
Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
[...]
Si - écrire une grammaire formelle et un parser spécialisé par exemple.
Mais je ne suis pas sur que ce soit justifié.
A toutes fins utiles, le livre Text Processing in Python de David Mertz
aborde ce genre de problème :
http://gnosis.cx/TPiP/
Merci pour ce lien utile !
Sinon, je pensai, dans un premier temps, écrire le texte sous la forme :
section{Titre 1}
texte{texte à prélever et à stocker dans un fichier (numéro 1)}
section{Titre 2}
texte{texte à prélever et à stocker dans un fichier (numéro 2)}
et utiliser le module re en faisant qqch du style :
listes_textes = []
for ligne in file_in:
listes_textes.extend(re.findall('\\texte{.*}',ligne))
Je pense obtenir ainsi la liste des paragraphes... Je vais tester.
Rémi.
Je souhaiterais écrire un script qui prélève certaines zones de texte dans un fichier. Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
[...]
Si - écrire une grammaire formelle et un parser spécialisé par exemple. Mais je ne suis pas sur que ce soit justifié.
A toutes fins utiles, le livre Text Processing in Python de David Mertz aborde ce genre de problème : http://gnosis.cx/TPiP/
Merci pour ce lien utile !
Sinon, je pensai, dans un premier temps, écrire le texte sous la forme : section{Titre 1}
texte{texte à prélever et à stocker dans un fichier (numéro 1)}
section{Titre 2}
texte{texte à prélever et à stocker dans un fichier (numéro 2)}
et utiliser le module re en faisant qqch du style :
listes_textes = [] for ligne in file_in: listes_textes.extend(re.findall('\texte{.*}',ligne))
Je pense obtenir ainsi la liste des paragraphes... Je vais tester. Rémi.
F. Petitjean
Bonjour,
Je souhaiterais écrire un script qui prélève certaines zones de texte dans un fichier. Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
Je sais comment faire pour l'écriture dans le fichier. Auriez-vous un idée ? Un lien utile ? N'ai-je pas d'autre solution que d'utiliser le module re ? Si les « section{titre section} » peuvent apparaitre n'importe où sur
la ligne je ne vois pas d'autres solutions que d'utiliser le module re. Par contre si, comme il est vraisemblable, les « section{...} » sont toujours sur une ligne séparée vous devriez pouvoir vous débrouiller avec un test du genre (*) if line.startswith(r'section{'): # début d'une nouvelle section : # fermeture du fichire section précédent (éventuellement) # ouverture d'un nouveau fichier
Merci. Rémi. Note * vous pouvez vraisemblablement avoir des espaces avant si vous
écrivez : fin = open('fichier.tex') for line in fin: line = line.lstrip() # ou même strip() if ... fin.close()
Bonjour,
Je souhaiterais écrire un script qui prélève certaines zones de texte
dans un fichier.
Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
Je sais comment faire pour l'écriture dans le fichier.
Auriez-vous un idée ? Un lien utile ?
N'ai-je pas d'autre solution que d'utiliser le module re ?
Si les « section{titre section} » peuvent apparaitre n'importe où sur
la ligne je ne vois pas d'autres solutions que d'utiliser le module re.
Par contre si, comme il est vraisemblable, les « section{...} » sont
toujours sur une ligne séparée vous devriez pouvoir vous débrouiller
avec un test du genre (*)
if line.startswith(r'section{'):
# début d'une nouvelle section :
# fermeture du fichire section précédent (éventuellement)
# ouverture d'un nouveau fichier
Merci.
Rémi.
Note * vous pouvez vraisemblablement avoir des espaces avant si vous
écrivez :
fin = open('fichier.tex')
for line in fin:
line = line.lstrip() # ou même strip()
if ...
fin.close()
Je souhaiterais écrire un script qui prélève certaines zones de texte dans un fichier. Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
Je sais comment faire pour l'écriture dans le fichier. Auriez-vous un idée ? Un lien utile ? N'ai-je pas d'autre solution que d'utiliser le module re ? Si les « section{titre section} » peuvent apparaitre n'importe où sur
la ligne je ne vois pas d'autres solutions que d'utiliser le module re. Par contre si, comme il est vraisemblable, les « section{...} » sont toujours sur une ligne séparée vous devriez pouvoir vous débrouiller avec un test du genre (*) if line.startswith(r'section{'): # début d'une nouvelle section : # fermeture du fichire section précédent (éventuellement) # ouverture d'un nouveau fichier
Merci. Rémi. Note * vous pouvez vraisemblablement avoir des espaces avant si vous
écrivez : fin = open('fichier.tex') for line in fin: line = line.lstrip() # ou même strip() if ... fin.close()
remi
Le bout de code (goret) que j'avais posté ici ne convient pas? (http://minilien.com/?XEbWMzm91x)
Oui, c'est très bien ça ! Merci. je l'avais inclus dans mon code.
Maintenant, j'aimerais, de la même manière, prélever le texte compris entre deux section{Titre 1} et section{Titre 2}.
Je crois que je vais réutiliser ton code en mettant auparavant le paragraphe à récupérer dans une commande du type texte{paragraphe à récupérer}
Le ficheir source sera alors : section{titre 1}
texte{paragraphe à récupérer}
section{2}
texte{...}
[...]
Peux-tu détailler le problème, dans ce cas?
L'idée générale est de transformer un fichier *.tex en *.sql pour qu'il aille nourrir un base de type MySQL. C'est pour une FAQ. Merci à tous. Rémi (newbie).
Le bout de code (goret) que j'avais posté ici ne convient pas?
(http://minilien.com/?XEbWMzm91x)
Oui, c'est très bien ça ! Merci. je l'avais inclus dans mon code.
Maintenant, j'aimerais, de la même manière, prélever le texte compris
entre deux section{Titre 1} et section{Titre 2}.
Je crois que je vais réutiliser ton code en mettant auparavant le
paragraphe à récupérer dans une commande du type texte{paragraphe à
récupérer}
Le ficheir source sera alors :
section{titre 1}
texte{paragraphe à récupérer}
section{2}
texte{...}
[...]
Peux-tu détailler le problème, dans ce cas?
L'idée générale est de transformer un fichier *.tex en *.sql pour qu'il
aille nourrir un base de type MySQL. C'est pour une FAQ.
Merci à tous.
Rémi (newbie).
Le bout de code (goret) que j'avais posté ici ne convient pas? (http://minilien.com/?XEbWMzm91x)
Oui, c'est très bien ça ! Merci. je l'avais inclus dans mon code.
Maintenant, j'aimerais, de la même manière, prélever le texte compris entre deux section{Titre 1} et section{Titre 2}.
Je crois que je vais réutiliser ton code en mettant auparavant le paragraphe à récupérer dans une commande du type texte{paragraphe à récupérer}
Le ficheir source sera alors : section{titre 1}
texte{paragraphe à récupérer}
section{2}
texte{...}
[...]
Peux-tu détailler le problème, dans ce cas?
L'idée générale est de transformer un fichier *.tex en *.sql pour qu'il aille nourrir un base de type MySQL. C'est pour une FAQ. Merci à tous. Rémi (newbie).
Denis Bitouzé
Le Sat, 12 Mar 2005 11:35:10 +0100 remi a écrit:
Je souhaiterais écrire un script qui prélève certaines zones de texte dans un fichier. Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
Si le fichier source est, comme ça semble être le cas, du (La)TeX, pourquoi ne pas plutôt écrire :
texte à prélever et à stocker dans un fichier (numéro i)
dans un fichier totoi.tex
et, dans le fichier source, mettre :
section{Titre 1}
input{toto1}
section{Titre 2}
input{toto2}
-- Denis
Le Sat, 12 Mar 2005 11:35:10 +0100
remi <remi@non.com> a écrit:
Je souhaiterais écrire un script qui prélève certaines zones de texte
dans un fichier.
Par exemple,
section{Titre 1}
texte à prélever et à stocker dans un fichier (numéro 1)
section{Titre 2}
texte à prélever et à stocker dans un fichier (numéro 2)
Si le fichier source est, comme ça semble être le cas, du (La)TeX,
pourquoi ne pas plutôt écrire :
texte à prélever et à stocker dans un fichier (numéro i)
Oui, c'est très bien ça ! Merci. je l'avais inclus dans mon code.
Maintenant, j'aimerais, de la même manière, prélever le texte compris entre deux section{Titre 1} et section{Titre 2}.
Ah oui, pardon, c'est moi qui n'ait rien compris à ton premier message.
Je crois que je vais réutiliser ton code en mettant auparavant le paragraphe à récupérer dans une commande du type texte{paragraphe à récupérer}
En fait, faut faire gaffe, ce code ne marche plus si il y a un retour à la ligne dans le section{bla bla bla}
J'ai quelques idées hyper-gorettes pour ton problème (plus d'infos demain).
-- Yves
yves
On Sat, 12 Mar 2005 22:56:02 GMT, (Yves) wrote:
J'ai quelques idées hyper-gorettes pour ton problème (plus d'infos demain).
D'abord, une reprise du code de la discussion précédente: il ne marche pas mieux, mais est plus concis. Je n'ai pas parfaitement bien compris pourquoi il marche, il faudrait lire en détail la documentation de findall: ######################### # -*- coding: Latin-1 -*- import re
On Sat, 12 Mar 2005 22:56:02 GMT, yves@RETIRER_NOSPAM.fr.invalid
(Yves) wrote:
J'ai quelques idées hyper-gorettes pour ton problème (plus d'infos
demain).
D'abord, une reprise du code de la discussion précédente:
il ne marche pas mieux, mais est plus concis.
Je n'ai pas parfaitement bien compris pourquoi il marche, il faudrait
lire en détail la documentation de findall:
#########################
# -*- coding: Latin-1 -*-
import re
J'ai quelques idées hyper-gorettes pour ton problème (plus d'infos demain).
D'abord, une reprise du code de la discussion précédente: il ne marche pas mieux, mais est plus concis. Je n'ai pas parfaitement bien compris pourquoi il marche, il faudrait lire en détail la documentation de findall: ######################### # -*- coding: Latin-1 -*- import re
# attention, le code ci-dessous ne fonctionne pas si il # existe un saut de ligne dans l'expression. exp='\section{.*}' motif = re.compile(exp)
fic_transforme = motif.sub('</section>n<section>',truc) output = open('fic_de_sortie.xml','w') output.write('<?xml version="1.0" encoding="ISO-8859-1"?>n<document>n<section>') output.write(fic_transforme) output.write('n</section>n</document>') output.close() ############################### et de traiter le fichier xml produit avec les outils pythons appropriés:
###################### # -*- coding: Latin-1 -*-
from xml.dom import minidom
xmldoc = minidom.parse('fic_de_sortie.xml')
sects = xmldoc.getElementsByTagName('section')
a=0 for i in sects: print a print i.firstChild.data.encode('latin-1') # print type(i.firstChild.data) a+=1 ################################## ou: ############################## # -*- coding: Latin-1 -*-
from xml.dom import minidom
xmldoc = minidom.parse('fic_de_sortie.xml')
sects = xmldoc.getElementsByTagName('section')
a=0 for elt in sects: print a blo = elt.firstChild.data.encode('latin-1') print blo.strip() # print type(i.firstChild.data) a+=1 ###################################
Peut-être ça vaut le coup de googler latex2xml, par exemple. Je n'ai rien trouvé en python (mais après juste une recherche rapide). -- Yves
On Sun, 13 Mar 2005 10:05:10 GMT, yves@RETIRER_NOSPAM.fr.invalid
(Yves) wrote:
D'abord, une reprise du code de la discussion précédente:
il ne marche pas mieux, mais est plus concis.
ensuite, l'idée est de ramener le fichier latex en terrain mieux connu
(à parser) , à savoir du xml:
# attention, le code ci-dessous ne fonctionne pas si il
# existe un saut de ligne dans l'expression.
exp='\\section{.*}'
motif = re.compile(exp)
fic_transforme = motif.sub('</section>n<section>',truc)
output = open('fic_de_sortie.xml','w')
output.write('<?xml version="1.0"
encoding="ISO-8859-1"?>n<document>n<section>')
output.write(fic_transforme)
output.write('n</section>n</document>')
output.close()
###############################
et de traiter le fichier xml produit avec les outils pythons
appropriés:
######################
# -*- coding: Latin-1 -*-
from xml.dom import minidom
xmldoc = minidom.parse('fic_de_sortie.xml')
sects = xmldoc.getElementsByTagName('section')
a=0
for i in sects:
print a
print i.firstChild.data.encode('latin-1')
# print type(i.firstChild.data)
a+=1
##################################
ou:
##############################
# -*- coding: Latin-1 -*-
from xml.dom import minidom
xmldoc = minidom.parse('fic_de_sortie.xml')
sects = xmldoc.getElementsByTagName('section')
a=0
for elt in sects:
print a
blo = elt.firstChild.data.encode('latin-1')
print blo.strip()
# print type(i.firstChild.data)
a+=1
###################################
Peut-être ça vaut le coup de googler latex2xml, par exemple. Je n'ai
rien trouvé en python (mais après juste une recherche rapide).
--
Yves
# attention, le code ci-dessous ne fonctionne pas si il # existe un saut de ligne dans l'expression. exp='\section{.*}' motif = re.compile(exp)
fic_transforme = motif.sub('</section>n<section>',truc) output = open('fic_de_sortie.xml','w') output.write('<?xml version="1.0" encoding="ISO-8859-1"?>n<document>n<section>') output.write(fic_transforme) output.write('n</section>n</document>') output.close() ############################### et de traiter le fichier xml produit avec les outils pythons appropriés:
###################### # -*- coding: Latin-1 -*-
from xml.dom import minidom
xmldoc = minidom.parse('fic_de_sortie.xml')
sects = xmldoc.getElementsByTagName('section')
a=0 for i in sects: print a print i.firstChild.data.encode('latin-1') # print type(i.firstChild.data) a+=1 ################################## ou: ############################## # -*- coding: Latin-1 -*-
from xml.dom import minidom
xmldoc = minidom.parse('fic_de_sortie.xml')
sects = xmldoc.getElementsByTagName('section')
a=0 for elt in sects: print a blo = elt.firstChild.data.encode('latin-1') print blo.strip() # print type(i.firstChild.data) a+=1 ###################################
Peut-être ça vaut le coup de googler latex2xml, par exemple. Je n'ai rien trouvé en python (mais après juste une recherche rapide). -- Yves
remi
Bonjour,
On Sun, 13 Mar 2005 10:05:10 GMT, (Yves) wrote:
D'abord, une reprise du code de la discussion précédente: il ne marche pas mieux, mais est plus concis.
ensuite, l'idée est de ramener le fichier latex en terrain mieux connu (à parser) , à savoir du xml: [...]
Très bonne idée je pense ! (amha de newbie !) En plus, le fichier in.tex est assez simple (que du texte, pas de formules ni d'images). Merci beaucoup pour vos propositions ! Je reviens vers vous après tests et documentation. Rémi.
Bonjour,
On Sun, 13 Mar 2005 10:05:10 GMT, yves@RETIRER_NOSPAM.fr.invalid
(Yves) wrote:
D'abord, une reprise du code de la discussion précédente:
il ne marche pas mieux, mais est plus concis.
ensuite, l'idée est de ramener le fichier latex en terrain mieux connu
(à parser) , à savoir du xml:
[...]
Très bonne idée je pense ! (amha de newbie !)
En plus, le fichier in.tex est assez simple (que du texte, pas de
formules ni d'images).
Merci beaucoup pour vos propositions !
Je reviens vers vous après tests et documentation.
Rémi.
D'abord, une reprise du code de la discussion précédente: il ne marche pas mieux, mais est plus concis.
ensuite, l'idée est de ramener le fichier latex en terrain mieux connu (à parser) , à savoir du xml: [...]
Très bonne idée je pense ! (amha de newbie !) En plus, le fichier in.tex est assez simple (que du texte, pas de formules ni d'images). Merci beaucoup pour vos propositions ! Je reviens vers vous après tests et documentation. Rémi.