Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/02/2021, à 12:32

L'Africain

Integrer notes dispersées dans un html à l'endroit précis de la note

Bonjour,
J'ai un grand nombre de fichiers html numérisé et océrisé qui ont donc des notes réparties un peut partout sur la page mais pas à l'endroit précis de la note. Je pense convertir les textes en question au format texte, donc partons de l'idée que ça soit du texte. Jevoudrais automatiser le déplacement de la note à la bonne place mais je ne sais pas comment faire. Mon texte serait donc:

commencement était le Verbe, et le Verbe était en Dieu (1) ». C...in « des Anges (2) »....e.

2. « Et nous l'avons vu, et nous en sommes témoins ». Plusieurs de nos frères qui ne connaissent point le grec, ignorent peut-être

1. Jean, I, 14, 1.— 2. Ps. LXXVII, 25.

 ce que le mot « témoins » veut dire en cette langue: c'est un mot qui se trouve sur les lèvres de tout le monde, et qui, en religion, a son sens propre; ceux que, ...a course (1) ». Antérieur aué faites « par lui, et sans lui rien n'a été fait (2) »), a voulu se faire voir par les yeux de chair qui contemplent le soleil; aussi a-t-il placé son pavillon dans le soleil, c'est-à-dpourquoi ils 

1. Ps. XVIII, 6.— 2. Jean, I.

Comme vous le voyez le chiffre de la note est encadré par des parenthèse. Le texte final devrait ressembler à ça:

commencement était le Verbe, et le Verbe était en Dieu \x + \xt Jean, I, 14, 1\x*». C...in « des Anges \x + \xt Ps. LXXVII, 25\x* »....e.

2. « Et nous l'avons vu, et nous en sommes témoins ». Plusieurs de nos frères qui ne connaissent point le grec, ignorent peut-être ce que le mot « témoins » veut dire en cette langue: c'est un mot qui se trouve sur les lèvres de tout le monde, et qui, en religion, a son sens propre; ceux que, ...a course \x + \xt Ps. XVIII, 6\x* ». Antérieur aué faites « par lui, et sans lui rien n'a été fait \x + \xt Jean, I, 3\x* »), a voulu se faire voir par les yeux de chair qui contemplent le soleil; aussi a-t-il placé son pavillon dans le soleil, c'est-à-dpourquoi ils 

Merci pour votre aide


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#2 Le 24/02/2021, à 23:38

Arbiel

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Bonjour

1) Quel langage veux-tu utiliser pour faire ce travail ?
2) les seuls couples de parenthèses présents dans le texte sont-ils tous des références chiffrées à des notes ?
3) les notes sont-elles toutes localisées après leur référence ?

Par ailleurs, pourquoi les pages ont-elles été numérisées pour ensuite être converties en caractères, alors que les pages html sont des fichiers textes et que le contenu non interprété par le navigateur peut être obtenu par

view-source:http(s)://url

que tu peux sélectionner par un ctrl+a, copier pas ctrl+c, puis recopier dans un éditeur de texte et enregistrer sur disque.

Enfin, il serait intéressant que tu publies une page ou un extrait de page pour que ceux qui veulent et peuvent t'aider puissent s'exercer.

Arbiel


Arbiel Perlacremaz
Dell Vostro Ubuntu 18.04 64 bits, LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#3 Le 25/02/2021, à 01:09

Abel 0

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Arbiel a écrit :

Par ailleurs, pourquoi les pages ont-elles été numérisées pour ensuite être converties en caractères, alors que les pages html sont des fichiers textes

Ca m'a intrigué aussi.
Mon hypothèse est que ses pages HTML ne présentent ces textes que comme des images, résultant d'une numérisation du texte source.
Et que lui-même les a converties en texte via un OCR.
Mais son explication vaudra mieux que mon hypothèse wink

Hors ligne

#4 Le 25/02/2021, à 10:56

L'Africain

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Salut,
Merci pour vos réponse. Voici un lien vers une page que je veux traiter. Mais en y réfléchissant bien. Elle sera déjà convertie en txt quand je voudrais y déplacer les notes.
Le language pour moi tout est bon, je travaille avec sed d'habitude mais là c'est un plus compliqué. Je m'adapte à ce que vous me proposerez, du awk du python...

2) les seuls couples de parenthèses présents dans le texte sont-ils tous des références chiffrées à des notes ?

Si ce sont des chiffres dans les parenthèses oui.

Si tu veux dire le chiffre de la note, alors oui. Comme tu peux le voir sur le lien, il y a un — entre chaque notes je devrais l'enlever dans le traitement car c'est un caractère qui est mal reconnu quand je converti de html en txt.

POur toute l'affaire de la convertion, ce sont les œuvres des Pères de l'Eglise qui ont été numériser pour être rendu public sur un site web. Mon intention (entre autres) c'est de pouvoir les mettre sur wikisource.


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#5 Le 25/02/2021, à 12:12

Abel 0

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Bonjour L'Africain, j'ai l'impression que tu as oublié le lien wink

Hors ligne

#6 Le 25/02/2021, à 13:00

L'Africain

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Mince exact: Epitres aux Parthes


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#7 Le 25/02/2021, à 14:29

Arbiel

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Ton lien renvoie vers un nombre de textes beaucoup trop important. Peux-tu donner un lien vers un seul texte, de sorte que tout le monde puisse travailler sur les mêmes bases.

Edit
Le texte que tu as proposé provient de
https://www.bibliotheque-monastique.ch/ … Toc6821331

Travailler sur le code de la page

    <p class="MsoNormal">&nbsp;</p>
    <p class="MsoNormal" style="text-indent:35.4pt">1. « Ce qui a été dès le commencement,
    ce que nous avons entendu, ce que nous avons vu de nos yeux, ce que nos mains ont touché
    du Verbe de vie » . Comment un homme peut-il, de ses mains, toucher le Verbe, si ce n'est
    parce que « le Verbe s'est fait chair, et qu'il a habité parmi nous? » Afin de pouvoir
    être touché de nos mains, le Verbe qui s'est fait chair a commencé par prendre un corps
    dans le sein de la Vierge Marie ; mais alors n'a point commencé le Verbe ; car, dit Jean,
    « il a été dès le commencement ». Remarquez, je vous prie, comme l'Epître de cet
    Apôtre confirme son Evangile, où nous avons lu tout à l'heure ces paroles : « Au
    commencement était le Verbe, et le Verbe était en Dieu (1) ». Ces paroles: « Le Verbe
    de vie », quelqu'un les regarde peut-être comme une manière de désigner le Christ, et
    non point le corps même du Christ que les Apôtres ont touché de leurs mains. Vois ce
    qui suit&nbsp;: « La vie même s'est manifestée ». Le Christ était donc le Verbe de
    vie. Mais comment la vie s'est-elle manifestée ? Elle était dès le commencement;
    toutefois elle ne s'était point encore fait connaître aux hommes; pour les anges, elle
    s'était montrée à eux, ils la voyaient et s'en nourrissaient comme d'un pain approprié
    à leur nature. Néanmoins, que dit l'Ecriture? « L'homme a mangé le pain « des Anges
    (2) ». La vie s'est donc manifestée en s'incarnant; de la sorte, ce que le coeur seul
    pouvait apercevoir, des yeux de chair étaient à même de le contempler, et le coeur
    pouvait, par là, parvenir à sa guérison. Le coeur seul est capable de voir le Verbe,
    mais des yeux de chair peuvent apercevoir un corps. Il nous était donc possible
    d'apercevoir le corps du Christ, mais contempler le Verbe cela nous était impossible; si
    donc le Verbe s'est fait chair, c'était pour apparaître à nos regards et guérir ce qui
    pouvait, en nous, considérer le Verbe.</p>
    <p class="MsoNormal" style="text-indent:35.4pt">2. « Et nous l'avons vu, et nous en
    sommes témoins ». Plusieurs de nos frères qui ne connaissent point le grec, ignorent
    peut-être </p>
    <p class="MsoNormal">&nbsp;</p>
    <p class="MsoFootnoteText">1. Jean, I, 14, 1.&#151; 2. Ps. LXXVII, 25.</p>
  

sera plus facile que de travailler sur du texte qui en provienne. Le code contient en effet des marques, comme la classe des paragraphes ("MsoNormal", "MsoFootnoteText"), qui permet de facilement distinguer le texte des notes de bas de page.

Et comment envisages-tu de reverser tout cela dans un wiki. Peux-tu lui envoyer directement du code html, ou dois-tu y coller du texte «brut» ?

Python avec BeautifulSoup pour naviguer dans la page me semble un outil intéressant pour le travail que tu te proposes de faire.

Edit 2
J'ai enregistré le code source sur mon disque.
Avec Python et BeautifulSoup, et le petit module de services (serv) que j'ai écrit (que je tiens à ta disposition si tu le souhaites), on retrouve facilement les paragraphes, dont je n'imprime ci-dessous que les premiers caractères (pyt est un alias qui importe les modules de base)

remi@remi-Vostro-3550:~$ pyt
>>> page=serv.xml_lire('Bureau/Lafricain/texte.html')
>>> for para in page.find_all(style='text-indent:35.4pt'):
...     t=para.string
...     print(t[0:25])
... 
Votre sainteté s'en souvi
Comme Verbe, le Christ es
1. « Ce qui a été dès le 
2. « Et nous l'avons vu, 
3. «Et nous en sommes tém
4. « Or, ce que nous vous
5. Notre manière devoir n
6. Remarque, en effet, le
7. De ce que l'Apôtre a d
8. Voyez comme l'apôtre J
10. « Mes bien-aimés, ce 
11. « Celui qui prétend ê
12. « Celui qui aime son 
13. « Mais celui qui hait
Le Sauveur est mort, mais
1. Les passages de nos sa
2. Le Seigneur leur fit v
3. Quand nous leur disons
4. « Je vous écris, mes p
5. «Je vous écris, pères 
Comme homme, le Christ es
6. « Je vous écris, jeune
7. « Enfants, je vous écr
8. Nous sommes tout cela,
9. Vous l'avez entendu : 
10. « Car tout ce qui est
11. Mais n'aimons ni le m
12. Pour s'appeler monde,
13. « Et concupiscence de
Puisque nous avons trouvé
1. « Mes petits enfants, 
2. Aussi le Sauveur empêc
3. Pour qu'aucun d'entre 
4. A qui Jean donne-t-il 
5. « Ils sont sortis du m
6. « Je ne vous écris pas
7. Ecoutez-moi , je vous 
8. Mais ne nous affligeon
9. Par conséquent, mes fr
10. Tout cela, mes frères
11. « Que tout ce que vou
Fais en sorte qu'il n'y p
12. Souvenez-vous donc, m
13. « Et vous n'avez pas 
Nous n'avons ni vu ni tou
1. Vous vous en souvenez,
2. « Et », dit l'Apôtre, 
3. «Si vous savez qu'il e
4. Ecoutez ceci : « Voilà
5. Qu'en est-il de nous? 
6. Que serons-nous donc q
7. « Et qui a cette espér
9. «Mes petits enfants, q
10. « Celui qui commet le
11. «Le Fils de Dieu est 
12. Pour ne point fatigue
Nous sommes enfants de Di
1. Je vous en conjure, éc
2. Examinez maintenant ce
3. Remarquez-le, mes frèr
4. Nous recommandons la c
5. Voulez-vous une preuve
6. Mais c'est là, avons-n
7. Si vous vous en souven
8. « Celui qui n'est pas 
9. « Ne vous étonnez pas,
10. « Si le monde nous dé
11. « Nous avons connu l'
12. Où commence la charit
13. Je le pense, mes frèr
Le commencement de la cha
1. Si vous vous en souven
2. Il en est qui ont d'au
3. Voici ce qu'il nous ra
«Où irai-je devant votre 
4. « Mes bien-aimés, si n
5. Une difficulté se prés
6. Je l'ai déjà dit à vot
7. Mais, remarquons-le bi
8. D'après cela, nous dev
9. Et quels sont ces comm
10. Dans les premiers tem
11. « Mes bien-aimés, ne 
12. Reste donc à savoir c
13. Que faire donc? Comme
14. Remarquez bien que Je
Les antéchrists, c'est-à-
1. Pour tous les fidèles 
2. « Mes petits enfants, 
3. « Ils sont du monde». 
4. « Mais nous, nous somm
5. Remarquez maintenant q
6. Mais pourquoi l'Apôtre
7. « Dieu a fait paraître
8. Ce que nous venons de 
9. « En cela consiste l'a
10. « Nul homme n'a jamai
11. S'il en est parmi vou
Nous ne pouvons pas toujo
1. En paroles, la charité
2. Voilà, mes frères, ce 
3. Aussi, mes frères, je 
4. Il en est peut-être pa
5. Toute charité, même ce
6. En cela, l'âme orgueil
7. Remarquez que je dis :
8. Le chrétien doit donc 
9. Et voyez les admirable
10. Comme hommes de misér
11. En vous disant ceci, 
12. «Jamais personne n'a 
13. «Nous avons vu et nou
14. « Celui qui confesse 
Dieu n'a nul besoin de se
Nous avons une preuve de 
1. Votre charité s'en sou
2. « L'amour de Dieu est 
3. « Son amour est parfai
4. Voyez maintenant ce qu
5. Il y a une autre sente
6. Pour te faire bien sai
7. Parlons donc d'abord d
8. Nous avons adressé la 
9. « Aimons Dieu, puisqu'
10. «Si quelqu'un dit : J
11. «Car, celui qui n'aim
Pour être enfant de Dieu 
1. Je le suppose : ceux d
2. Voyons donc ce que c'e
3. « Nous connaissons que
4. Comment savons-nous qu
5. Vous avez entendu ces 
6. Voyez, mes frères, com
7. « Car l'amour de Dieu 
8. Courons donc, mes frèr
9. Aussi, au moment de re
10. Qu'avons-nous fait ? 
>>> 

À partir de là, sur chaque para, au lieu de visualiser le début du paragraphe, on cherche le premier élément de classe "MsoFootnoteText" qui suivi, on en découpe le contenu par le séparateur de notes (faire une conversion en unicode) pour retrouver les notes qui s'appliquent au paragraphe, et on boucle sur le nombre de notes trouvées en remplaçant "(x)" par "(note numero x)".

Cela ne devrait pas te poser trop de difficultés.

Dernière modification par Arbiel (Le 25/02/2021, à 15:55)


Arbiel Perlacremaz
Dell Vostro Ubuntu 18.04 64 bits, LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#8 Le 25/02/2021, à 23:30

Arbiel

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

En fait, c'est un peu plus compliqué que je ne l'ai supposé initialement :

Il me semble que le mieux est de faire d'abord la liste des notes :

letexte=serv.xml_lire('Bureau/Lafricain/texte.html')
ensNotes=[]
for notesbaspage in letexte.find_all(class_='MsoFootnoteText'):
	notes=''
	for note in notesbaspage.strings:
		notes=notes+note
	lesnotes=str(notes).split('\x97')
	for chacune in lesnotes:
		ensNotes.append(chacune.replace('\n','').lstrip())
# liste des notes (pour contrôle)
for chacune in ensNotes:
	print(chacune)

1. Jean, I, 14, 1.
2. Ps. LXXVII, 25.
1. Ps. XVIII, 6.
2. Jean, I, 3.
3. Gen. II, 21.
1 Matth. XIX, 6.
2. Isa. LXI,    10.
3. Jean, XX, 25-29.
1. Ps. XXXIII, 6.
1. II Cor. VI, 14.
2. Ephés. VI,    12.
1. I Pierre, IV, 8.
1. Ps. I, 11, 5.
2. Rom. III, 4.
1. Jean, I, 1.
1. Coloss. IV, 3.
2. Matth. XXIV, 13.
3. Ps. CXXXI,    6.
4. Dan. II,35.
1. Jean, XIII, 34.
2. Luc, XXIII, 34.
1. Matth. V, 48.
1. Coloss. III, 9, 10.
2. Ephés. V, 8.
3. Matth.    V, 44.
1. Ps. CXX, 6.
1. Jean, VI, 54-69.
2. II Cor. XI, 29.
1. Ps. CXVIII, 165.
2. Ephés. IV, 2, 3.
3. Galat.    VI, 2.
1. Dan. II, 34, 35.
2. Gen. XXII, 18.
3. Matth. V,    14.
1. Isa. II, 2.
1. Rom. IV, 25.
1. Cor. XI, 29.
2. Act. II, 41.
1. Ps XXI, 28.
1. Luc, XXIV, 13-49.
1. Act. I, 15; II, 1, 12.
2. Ps.    XVIII, 4-6.
1. Cor. I, 13,
1. Jean, I, 3.
2. Id., VIII, 58. 
3. Ps. CI,    28.
4. Id. II, 7.
5. Exod. III, 14.
6. Ps. CIX, 3.
1. Jean, C, 3.
2. II Cor. XIII, 4.
1. I Cor. VIII, 1.
2. Matth. VIII, 29.
1. Ephés. III, 17.
1. Rom. I, 25.
1. Luc, X, 20.
2. Matth. XXIV, 24.
1. Matth. IV, 1-10.
2. Ps. LXXXI, 6.
1. Jean, I, 1.
1. Jean, XX, 17, 27.
1. Jean, XIV, 9.
1. I Cor. XII, 26.
1. Jean, XIV, 6.
2. Dan. II, 35.
3. Luc, XX, 18.
1. Ps. II, 8.
1. Luc, XXIV, 46, 47.
1. Tit. I, 16.
2. Matth. XII, 31.
3. Id. VII,    16.
1. Dan. III, 24-90.
1. Ps. XVI, 4.
1. Matth. XXV, 31, 41.
1. Matth. XXIII, 8; 9.
2. I Cor. III, 6, 7.
1. Jean, XII, 31.
1. Marc, XVI, 15.
1. Matth. XXV, 31.
2. Jean, VIII, 31, 32.
1. Ps. CXLVI, 7.
2. I Cor. XV, 54.
3. Gen. III, 6.
1. Job, II,10.
1. Jean, I, 1.
2. Philipp. II, 6. 
3. Jérém.    XVII, 5.
4. Jean, XIX, 37.
5. Matth. XXV, 31. 41.
6. Id. V, 8.
7.    I Cor. II, 9.
1. Philipp. III, 13, 14.
1. Rom. VIII, 24, 25.
2. Ps. XXVI, 9.
1. II Cor. V, 7.
2. Rom. I, 17.
1. I Jean, I, 8
1. Jean, I, 8.
1. Jean, XIII, 23.
1. Jean, III, 4-8.
2. Id. XIII, 34.
1. I Pierre, IV, 8.
2. Jean, XXI, 15-17.
3.    Ps. CXV, 12, 13.
4. Luc, XXIII, 34.
1. Act. VII, 59.
2. II Cor, XIV, 15. 
3. Philipp. I, 21-24.
4. Luc, VIII, 5.
5. Id. XIX,    6-8.
1. III Rois, XVII, 4-9.
2. Matth, X, 41, 42.
1. I Cor. XIII, 12.
2. I Jean,    II, 11.
3. I Cor. IV, 15.
1. Rom. XIII, 8, 10.
2. Matth. XIII, 46.
1. I Cor. XIII, 1.
1. Jean, I, 10.
2. I Jean, II, 2.
1. Jean, XXI, 15-19.
2. Id. XV, 13.
1. Jean, XV, 13.
1. I Jean, III, 16, 17.
1. II Cor. XII, 15.
2. I Cor. IV, 3.
3. Id. XIII, 3.
4. II Cor. I, 12.
5. Galat. VI, 4.
1. Matth. VI, 1, 3.
2 Ps. CXXXVIII, 7, 8.
3. I Id.    XXXI, 7.
1. Jean, XIII, 34.
1. Jean, I, 8.
1. II Cor. XII, 7-9.
2.Job, I, 11, 12.
1. I Jean, III, 8.
2. Jean, VIII,    11.
3. Gen. III, 1-6.
4. Job, II, 9.
5. Luc, VIII, 32.
1. Rom, I, 24.
2. Id. VIII, 26,    27.
3. Id. V, 5.
1. Jean, VII, 37-39.
1. Prov. XVI, 22.
2. Id. IX, 18, suiv. les Septante.
1. I Jean, II, 19, 22.
2. Traité III, II,. 7-9.
3.    Tit. I, 16.
4. Jean, I, 1.
5. Id. XV, 13.
1. Rom. II, 21.
1. Matth. XXIII, 3.
2. Id. V, 19.
1. Isa. LXIV, 4; I Cor. II, 9.
1. Matth. VI,12.
2. Jean, IV, 3.
3. Id. XV, 13.
1. Matth. VI, 14, 15.
2. Jean, XV, 6.
1. Luc, XXIII, 34.
1. Rom. V, 5.
2. Prov. V,    16, 17.
3. I Rois, XIX. 
4. I Cor. XI, 29.
5. Ezéch.    XXXVI, 20.
1. Rom. VIII, 32.
2. Galat. II, 20.
1. Jean, XXI, 15-17.
2. Matth. V, 8.
3. 4 Ps. XL,    2.
4. Luc, VIII, 8.
1. Matth. III, 16.
2. Hébr. XII, 7.
3. Jean, I,    33.
1. Ephés. III, 17.
1. Matth. VI, 1.
1. Matth. V, 16.
2. Galat. I,    22-24.
3. Act. IX.
4. I Rois, XIX.
5. Act.    XIII, 9.
6. I Cor. XV, 9.
7. Ephés. III, 8.
1. Matth. IX, 20-22.
2. Hébr. XIII, 1.
3. I Jean,    II, 10.
4. Id. III, 23.
5. Matth. V, 46.
1. Jean, XXI, 17.
1. Tim. VI, 10.
2. Eccli. X, 15.
1. Gen. I, 26.
2. Ps. XXXI, 9.
3. Dan. VI, 22.
1. Exod. VIII.
2. Dan. III, 50.
3.    II Machab. VII.
4. Hébr. XII, 6.
1. I Cor. XV, 53, 54.
2. Id. VII, 7.
1. I Cor. XIII, 3.
1. Matth. V, 6.
1. Matth. IX, 12.
1. Matth. V, 44.
2. Luc, XXIII,    34.
1. Hébr. XII, 6.
1. Rom. V, 5.
2. Id. VIII, 24.
3. II Cor. XV, 53,    54.
1. Ps. XV, 2. 
2. Luc, XV, 4, 5.
1. Thess. II, 7.
1. I Jean, IV, 16.
2. I Cor. XIII, 8.
3. Eccli.    I,16.
1. Coloss. III, 5.
2. Matth. VI, 10.
3. Ps. VI, 4,    5.
1. Philipp. I, 23, 24.
1. Matth. V, 44-46.
1. Rom. VIII, 35.
2. I Pierre, III, 13.
3. Ps.    XXIX, 12, 13.
1. Eccli. I, 28.
2. Ps. XVIII,    10.
1. Ps. XXXIII, 17.
2. Id. I, II, 5.
1. Ps. C, I, 2.
1. Rom. V, 8, 9.
2. Ps. XLIV, 9.
1. Jean, I, 1.
2. Isa. LIII, 2.
3. Philipp. II, 6,    7.
1. I Jean, IV, 8, 16.
1. Ps. LXXII, 27, 28.
2. I Jean, III, 15, 23.
3.    Jean, XIII, 34.
1. Galat. V, 6.
1. Jean, XIV, 6.
1. Jacques, II, 19.
2. Matth. XVI, 13-18.
3. Id.    VIII, 29; Marc, I, 24.
1. Galat. V, 6.
1. I Cor. XII, 26, 27.
2. I Jean, IV, 20.
3. Jean,    I, 3, 14.
1. Act. IX, 4.
2. Jean, XIII, 34.
1. Ps. CXVIII, 83.
2. Jean, XV, 34.
3. Galat. VI,    2.
4. Ps. CXVIII, 96.
5. I Tim. I, 5.
1. Rom. XIII, 10.
2. Id. X,    4.
2. Ps. LXXII, 28.
1. Ps. XXXIII, 3.
2. Id. LV, 5, 11.
3. I Jean, III,    2.
1. I Jean, III, 2. 
2. Ps. CCXVIII, 96.
3. II Cor.    VI, 11,12.
4. Ps. XII, 4.
5. I Ps. CXVIII, 85.
1. Matth. XXII, 37, 40.
2. Ps. IX, 3.
1. Jean, I, 14.
2. Luc, XXIV, 46.
3.    Id. 47.
4. Ps. CXVIII, 96.
1. Act. IX, 4.
2. Id. I, 6-8.
1. Luc, XVI, 22, et suiv.
2. Act. IX, 4.
1. Gen. XVI, 4-9.
2. Luc, XXIV, 46, 47.
3. Matth.    XVI, 19.
4. Luc, XXIV, 47.

pour ensuite refaire une passe en cherchant les occurrences de (x) pour les remplacer au fur et à mesure par la note correspondante (en supposant qu'il n'existe aucune référence (x) sans la note correspondante). Il faut peut être vérifier que la valeur x trouvée entre les parenthèses correspond bien à la numérotation de la note par laquelle on s'apprête à la remplacer. J'ai vu «capable de dire (165) qu'il y a des ténèbres en Dieu?» et le 165 n'est pas une référence de note.


Arbiel Perlacremaz
Dell Vostro Ubuntu 18.04 64 bits, LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#9 Le 26/02/2021, à 10:44

L'Africain

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Je pense qu'en fait ça serait plus facile si on travaillait sur du txt. Parce que de toute façon je vais devoir le passer en txt. Avec awk je ne connais pas je me demande si en mettant les paragraphes et les notes qui les suivent sur une lignes on ne pourrait pas faire un truc?


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#10 Le 26/02/2021, à 15:57

Arbiel

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Bonjour

Je ne pense pas que l'utilisation de commandes bash facilite la résolution de ton problème. Le fait que tu doives produire du texte brut ne me semble absolument pas un critère de choix de la manière de procéder.

Pour ma part, je n'ai jamais utilisé awk, si ce n'est en recopiant des commandes qui m'avaient été indiquées. sed ne me paraît indiqué non plus. L'extrême concision des commandes en rend la lecture par autrui, ou la relecture ultérieure personnelle quelque peu délicate.

Par contre, la poursuite de ce travail en python ne me paraît pas très compliquée. Si j'ai un peu de temps, je t'en proposerai une version. Ce sera pour moi l'occasion de poursuivre ma formation dans ce langage de programmation.

Arbiel


Arbiel Perlacremaz
Dell Vostro Ubuntu 18.04 64 bits, LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#11 Le 26/02/2021, à 16:53

L'Africain

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Merci Arbiel!
C'est vrai que tu coup, je pourrais peut-être traiter tous mes fichiers en masse directement en html, même si je les converti après en  texte.


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#12 Le 26/02/2021, à 21:31

Arbiel

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Bonsoir

Avec ce code:

letexte=serv.xml_lire('Bureau/Lafricain/texte.html')
ensNotes=[]
for notesbaspage in letexte.find_all(class_='MsoFootnoteText'):
	lesnotes=str(''.join(notesbaspage.strings)).split('\x97')
	for chacune in lesnotes:
		chacune=chacune.replace('\n','').lstrip()
		ensNotes.append(chacune)
#		print(chacune)

for para in letexte.find_all(class_='MsoNormal'):
	if len(ensNotes)==0:
		print('Fin des substitutions')
		break
	paragraphe=str(''.join(para.strings))
	lesÉléments=[]
	substitution=False
	encore=True
	print('traitement paragraphe : ' + paragraphe[:26])
	while encore:
		césure="(" + ensNotes[0][0] + ")"
		éléments=paragraphe.split(césure,maxsplit=1)
		if len (éléments) > 1:
	# le paragraphe contient la référence à la note à insérer dans le texte
			lesÉléments.append(éléments[0])
			lesÉléments.append('('+ensNotes[0]+')')
#			len(lesÉléments)
			paragraphe=éléments[1]
			substitution=True
			del ensNotes[0]
#			len(ensNotes)
		else:
			encore=False
			if substitution:
				lesÉléments.append(éléments[0])
				paragraphe=''.join(lesÉléments)			
				para.string=paragraphe
				print(para)
				break

les substitutions se font correctement jusqu'au paragraphe

<p class="MsoNormal">gens aussi aveugles que ceux qui détestent leurs frères ? La preuve
    de leur cécité, c'est qu'ils se sont buttés contre la montagne. Je vous répète les
    mêmes choses, pour que vous n'en perdiez pas le souvenir. Est-ce que cette pierre, qui
    s'est détachée de la montagne sans le secours de mains d'homme, est-ce que le Christ
    n'est point sorti du peuple juif sans la coopération d'un père charnel? Cette pierre
    n'a-t-elle pas écrasé tous les royaumes du monde , c'est-à-dire toute la puissance des
    idoles et des démons ? N'est-elle pas devenue grande ? N'est-elle pas devenue une immense
    montagne qui a rempli toute la terre (1) ? Montrons-nous du doigt cette montagne, comme on
    essaierait de montrer à des hommes la pleine lune? Par exemple, quand des hommes veulent
    voir la nouvelle lune, ils disent : Voilà la lune, voilà où elle se trouve. Et s'il en
    est là qui ne puissent apercevoir son faible croissant, et qui disent : Où donc ? On
    dirige le doigt du côté où elle se montre pour la leur faire voir : il arrive, parfois,
    qu'ils n'aperçoivent rien, mais dans la crainte de passer pour des aveugles, ils
    affirment qu'ils l'ont vue distinctement. Mes fières, montrons-nous l'Eglise de la même
    façon ? Ne s'étale-t-elle pas au grand jour ? N'apparaît-elle pas à tous les yeux ?
    N'a-t-elle pas réuni, dans son giron, toutes les nations de l'univers ? Ne voyons-nous
    point en elle l'accomplissement de la promesse faite à Abraham tant d'années auparavant
    , à savoir que tous les peuples seraient bénis en. celui qui sortirait de lui'? Cette
    promesse n'a été faite qu'à un seul fidèle : et le monde s'est rempli de milliers de
    fidèles. Voilà cette montagne qui occupe toute la surface de l'univers, voilà cette
    ville dont il a été dit : « Une ville, placée sur une montagne, ne peut être cachée
    (3)&nbsp;». Pour les Donatistes, ils se buttent contre la montagne. Quand on leur dit :
    Montez, ils répondent Il n'y a pas de montagne ; ils aiment mieux se heurter contre la
    montagne, que chercher une place dans l'Eglise. Hier, on vous a lu Isaïe ; ceux d'entre
    vous qui tenaient ouverts non-seulement leurs yeux, mais aussi leurs oreilles, les
    oreilles de leur esprit surtout, ont remarqué ce passage : « Dans les derniers jours, la
    montagne où habite le. Seigneur sera élevée au-dessus des collines, sur le sommet des
    montagnes ». Est-il rien d'aussi </p>

qui ne contient pas la référence (2) comme l'indiquent les notes de bas de page qui suivent

<p class="MsoFootnoteText">1. Dan. II, 34, 35.&#151; 2. Gen. XXII, 18.&#151; 3. Matth. V,
    14.</p>

Par ailleurs, j'ai dû changer le filtre sur les paragraphes car, contrairement à ce que j'avais trop rapidement déduit du début du texte, les paragraphes à traiter ne disposent pas tous de l'attribut

style="text-indent:35.4pt"

Voila le début de ce que donne le script

traitement paragraphe : 
traitement paragraphe : Les traités sur l'Evangile
traitement paragraphe : 
traitement paragraphe : 
traitement paragraphe : 
traitement paragraphe : Haut du
    document
traitement paragraphe : 
traitement paragraphe : Votre sainteté s'en souvie
traitement paragraphe : 
traitement paragraphe : Haut du
    document
traitement paragraphe : 
traitement paragraphe : 
traitement paragraphe : 
traitement paragraphe : Comme Verbe, le Christ est
traitement paragraphe : 
traitement paragraphe : 1. « Ce qui a été dès le c
<p class="MsoNormal" style="text-indent:35.4pt">1. « Ce qui a été dès le commencement,
    ce que nous avons entendu, ce que nous avons vu de nos yeux, ce que nos mains ont touché
    du Verbe de vie » . Comment un homme peut-il, de ses mains, toucher le Verbe, si ce n'est
    parce que « le Verbe s'est fait chair, et qu'il a habité parmi nous? » Afin de pouvoir
    être touché de nos mains, le Verbe qui s'est fait chair a commencé par prendre un corps
    dans le sein de la Vierge Marie ; mais alors n'a point commencé le Verbe ; car, dit Jean,
    « il a été dès le commencement ». Remarquez, je vous prie, comme l'Epître de cet
    Apôtre confirme son Evangile, où nous avons lu tout à l'heure ces paroles : « Au
    commencement était le Verbe, et le Verbe était en Dieu (1. Jean, I, 14, 1.) ». Ces paroles: « Le Verbe
    de vie », quelqu'un les regarde peut-être comme une manière de désigner le Christ, et
    non point le corps même du Christ que les Apôtres ont touché de leurs mains. Vois ce
    qui suit: « La vie même s'est manifestée ». Le Christ était donc le Verbe de
    vie. Mais comment la vie s'est-elle manifestée ? Elle était dès le commencement;
    toutefois elle ne s'était point encore fait connaître aux hommes; pour les anges, elle
    s'était montrée à eux, ils la voyaient et s'en nourrissaient comme d'un pain approprié
    à leur nature. Néanmoins, que dit l'Ecriture? « L'homme a mangé le pain « des Anges
    (2. Ps. LXXVII, 25.) ». La vie s'est donc manifestée en s'incarnant; de la sorte, ce que le coeur seul
    pouvait apercevoir, des yeux de chair étaient à même de le contempler, et le coeur
    pouvait, par là, parvenir à sa guérison. Le coeur seul est capable de voir le Verbe,
    mais des yeux de chair peuvent apercevoir un corps. Il nous était donc possible
    d'apercevoir le corps du Christ, mais contempler le Verbe cela nous était impossible; si
    donc le Verbe s'est fait chair, c'était pour apparaître à nos regards et guérir ce qui
    pouvait, en nous, considérer le Verbe.</p>
traitement paragraphe : 2. « Et nous l'avons vu, e
traitement paragraphe : 
traitement paragraphe : 
traitement paragraphe : ce que le mot « témoins » 
<p class="MsoNormal">ce que le mot « témoins » veut dire en cette langue: c'est un mot
    qui se trouve sur les lèvres de tout le monde, et qui, en religion, a son sens propre;
    ceux que, en latin, nous appelons témoins, les Grecs leur donnent le nom de martyrs.
    Puisse ce nom des martyrs être si bien gravé dans notre coeur, que nous les imitions
    dans leurs souffrances au lieu de les poursuivre de nos mépris. « Nous l'avons vu et
    nous en sommes témoins » s'exprimer ainsi, c'était donc dire: Nous l'avons vu, et nous
    sommes martyrs. En rendant témoignage de ce qu'ils ont vu eux-mêmes, ou de ce qu'ils ont
    entendu dire aux témoins mêmes des événements, les martyrs ont déplu aux hommes
    contre lesquels ils déposaient; voilà pourquoi ils ont souffert ce qu'ils ont souffert.
    Les martyrs sont donc les témoins de Dieu. Le Seigneur a voulu avoir des hommes pour
    témoins, afin de leur servir de témoin à son tour. « Nous l'avons vu », dit Jean, a
    et nous en sommes témoins ». Où les Apôtres l'ont-ils vu? Dans son apparition.
    Qu'est-ce à dire, dans son apparition? Dans le soleil, ou, en d'autres termes, dans la
    lumière de ce monde. Et comment a-t-on pu voir dans le soleil celui qui l'a créé?
    Evidemment parce qu' « il a placé son pavillon dans le soleil ; il semblable à un
    époux qui sort de son lit nuptial, pareil à un géant, il s'est élancé ci pour fournir
    sa course (1. Ps. XVIII, 6.) ». Antérieur au soleil qu'il a tiré du néant, à l'aurore, à tous les
    astres, à tous les anges, ce vrai Créateur de toutes choses (« car toutes choses ont
    été faites « par lui, et sans lui rien n'a été fait (2. Jean, I, 3.) »), a voulu se faire voir
    par les yeux de chair qui contemplent le soleil; aussi a-t-il placé son pavillon dans le
    soleil, c'est-à-dire qu'il a montré son humanité au grand jour de ce monde; le sein
    d'une Vierge a servi de lit nuptial à cet époux, car dans ces virginales entrailles se
    sont unis un époux et une épouse: l'époux était le Verbe ; l'épouse, notre humanité;
    en effet, il est écrit : « Et ils seront deux dans une seule chair (3. Gen. II, 21.)». Et le Sauveur
    a ajouté dans l'Evangile : « C'est pourquoi ils </p>
traitement paragraphe : 
traitement paragraphe : 
traitement paragraphe : 164
traitement paragraphe : ne sont plus deux, mais un
<p class="MsoNormal">ne sont plus deux, mais une seule chair (1 Matth. XIX, 6.) ». Isaïe lui-même nous
    rappelle d'une manière bien juste que ces deux ne font qu'un; car, en parlant de la
    personne du Christ, il s'exprime en ces termes : « Il a paré ma tête d'une couronne,
    comme celle d'un époux, et il m'a orné de pierreries comme une épouse (2. Isa. LXI,    10.) ». On
    croirait n'entendre parler qu'un seul et même personnage, puisqu'il parle. de lui-même
    comme étant, tout à la fois, époux et épouse, parce qu' « ils ne sont pas deux, mais
    une seule chair », parce que « le Verbe s'est fait chair » et qu' « il a habité parmi
    nous » . A cette chair s'unit l'Eglise, et alors se parfait le Christ ; alors il devient
    tête et corps.</p>
traitement paragraphe : 3. «Et nous en sommes témo
<p class="MsoNormal" style="text-indent:35.4pt">3. «Et nous en sommes témoins »,
    dit l’Apôtre, « et nous vous annonçons cette vie éternelle qui était dans le
    Père, et qui est apparue en nous »; c'est-à-dire, qui est apparue parmi nous, ou, pour
    parler plus clairement, qui nous est apparue. « Ce que nous avons vu et entendu, nous
    vous l'annonçons ». Que votre charité y fasse attention. « Ce que nous avons vu et
    entendu, nous vous l'annonçons ». Les Apôtres ont vu le Seigneur en personne,
    présent dans la chair, ils ont entendu les paroles qui sont tombées de ses lèvres, et
    ils nous l'ont annoncé. Nous l'avons donc entendu, mais nous ne l'avons pas vu ; en
    sommes-nous moins heureux que ceux qui ont vu et entendu ? Pourquoi, alors, Jean
    ajoute-t-il : « Afin que vous entriez en société avec nous? » Les Apôtres ont vu, et
    nous nous n'avons rien vu, et cependant nous sommes en société avec eux, parce qu'avec
    eux nous avons une seule et même foi. Un d'entre eux a eu beau voir, il n'a pas cru ;
    pour croire, il a voulu toucher de ses mains, et il a dit : « Je ne croirai pas avant
    d'avoir mis a mes doigts dans la plaie des clous, et ma « main dans son côté ». Celui
    qui se présente sans interruption aux regards des Esprits célestes, s'est, pour un
    temps, laissé toucher par des mains d'hommes; le disciple précité le toucha donc et
    s'écria : « Mon Seigneur et mon Dieu ! » Pour nous consoler de ce qu'il nous est
    impossible de le toucher nous-mêmes autrement. que par la foi, puisqu'il est déjà assis
    à la droite de son Père, le Sauveur lui répondit: «Thomas, parce que tu as vu, tu as
    cru ; bienheureux, ceux qui ne, voient pas et qui croient (3. Jean, XX, 25-29.) ».C'est de nous qu'il a </p>

Arbiel Perlacremaz
Dell Vostro Ubuntu 18.04 64 bits, LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#13 Le 27/02/2021, à 10:31

L'Africain

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Un grand merci!
j'essaye d'éxécuter le script que j'ai mis dans un fichier nomé notes.py, je l'ai rendu exécutable, j'ain changé le chemin vers mon fichier comme suit:

letexte=serv.xml_lire('index.htm')

Je l'exécute et j'ai cette erreur:

 ./notes.py
Traceback (most recent call last):
  File "./notes.py", line 2, in <module>
    letexte=serv.xml_lire('index.htm')
NameError: name 'serv' is not defined

De plus si je veux l'appliquer sur beaucoup de fichier en une fois je fais comment?


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#14 Le 27/02/2021, à 17:27

Arbiel

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Ne te précipite pas. La méthode que j'ai utilisée n'est pas bonne. Elle est fondée sur deux hypothèses qui s'avèrent fausses : cohérence parfaite entre les appels de notes et les notes, et succession des appels de notes dans l'ordre des numéros de notes.

Il faut découper le traitement en se basant sur les notes de bas de page et en insérant les notes dans les quelques paragraphes auxquels elles correspondent. C'est ce que je suis en train de faire. J'intégrerai le module de service qui te manque dans le corps du script. Vérifie que tu dispose des modules
request
re
BeautifulSoap


Arbiel Perlacremaz
Dell Vostro Ubuntu 18.04 64 bits, LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#15 Le 28/02/2021, à 00:40

Arbiel

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Bonsoir

J'ai ajouté dans le script un extrait de mon module de services. J'ai testé sur la page

et les substitutions me paraissent bonnes. Les appels de note peuvent ne pas correspondre aux notes indiquées en bas de page, elles peuvent ne pas se succéder dans le même ordre. Une note peut être référencée plusieurs fois dans la page (je n'ai pas vu le cas, mais rien ne permet d'affirmer que cette situation ne peut pas se présenter).

Dans les notes de bas de page, j'ai supprimé le numéro de la note, le '.' s'il est présent derrière ce numéro et les espaces qui précèdent la note.

Il te faut les modules request, re et bs4 pour que les commandes «import» se passent correctement.

import sys
import os
from bs4 import BeautifulSoup as btfs
import requests
import re	

def url_lire(url=None):
	"""Lecture d'une url."""
	if url is None:
		return None
	try:
		doc_html=requests.get(url, timeout=2).text
	except requests.exceptions.ConnectionError:
		print("La connexion au serveur distant n'a pas pu être établie")
		return None
	except requests.exceptions.Timeout:
		print("Le serveur distant ne répond pas")
		return None
	else:
		return doc_html

def local_lire(fic=None):
	"""Lecture de l'intégralité d'un fichier."""
	if fic is None:
		return None
	try:
		return open(fic , 'rt', newline='\r').readline()
	except FileNotFoundError:
		print ('Le fichier «' +fic+"» n'existe pas.")
		return None 

def xml_lire(source, décodeur='xml', trace=False):
	"""Création d'un document xml à partir d'une url ou d'un fichier.""" 
	if trace:
		print('lecture '+source)
	if source.startswith('http',0,4):
		doc=url_lire(url=source)
		décodAvec="html5lib"
	else:
		doc=local_lire(fic=source)
		décodAvec="html.parser"
	if décodeur is None:
		décodeur=décodAvec	
	if doc is not None :
		try:
			return btfs(doc,décodeur)
		except:
			return None
	else:
		return None
			
def xml_ecrire(source,dest=None, trace=False):
	if dest is None:
		import tempfile
		dest=tempfile.mkstemp(suffix='.xml', prefix='pyth_')[1]
	f=open(dest, 'w')
	if isinstance(source, str):
		f.write(source)
	elif isinstance(source, btfs):
		f.write(str(source))
	else:
		print('Le paramètre source ne peut pas être écrit dans un fichier texte')
		return None
	return dest
#

def lesParagraphes(nœud):
	return nœud.has_attr('class') and (nœud['class']=='MsoNormal' or nœud['class']=='MsoFootnoteText')
	
page='https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821331'

letexte_html=xml_lire(page)

paragraphes=[]
ensNotes={}
lesfiltres=[]
substitution=False
for para in letexte_html.find_all(lesParagraphes):
	if para['class']=='MsoNormal':
		paragraphes.append(para)
	else:
		lesnotes=str(''.join(para.strings)).split('\x97')
		for chacune in lesnotes:
			chacune=chacune.replace('\n','').lstrip()
			ensNotes[chacune[0]]=re.sub('^[1-9][.]?','',chacune).lstrip()
			lesfiltres.append(chacune[0])
		filtre='[(](' + '|'.join(lesfiltres) +  ')[)]'
		for parag in paragraphes:
			letexte=str(''.join(parag.strings))
#			print('traitement paragraphe : ' + letexte[:26])
			while f:=re.search(filtre,letexte):
				letexte=letexte.replace(f.group(0),ensNotes[f.group(1)].join(('(',')')))
				substitution=True
			if substitution:
				parag.string=letexte
				print(letexte)
			substitution=False
		paragraphes=[]
		ensNotes={}
		lesfiltres=[]

Voila le début du résultat obtenu

1. « Ce qui a été dès le commencement,
    ce que nous avons entendu, ce que nous avons vu de nos yeux, ce que nos mains ont touché
    du Verbe de vie » . Comment un homme peut-il, de ses mains, toucher le Verbe, si ce n'est
    parce que « le Verbe s'est fait chair, et qu'il a habité parmi nous? » Afin de pouvoir
    être touché de nos mains, le Verbe qui s'est fait chair a commencé par prendre un corps
    dans le sein de la Vierge Marie ; mais alors n'a point commencé le Verbe ; car, dit Jean,
    « il a été dès le commencement ». Remarquez, je vous prie, comme l'Epître de cet
    Apôtre confirme son Evangile, où nous avons lu tout à l'heure ces paroles : « Au
    commencement était le Verbe, et le Verbe était en Dieu (Jean, I, 14, 1.) ». Ces paroles: « Le Verbe
    de vie », quelqu'un les regarde peut-être comme une manière de désigner le Christ, et
    non point le corps même du Christ que les Apôtres ont touché de leurs mains. Vois ce
    qui suit: « La vie même s'est manifestée ». Le Christ était donc le Verbe de
    vie. Mais comment la vie s'est-elle manifestée ? Elle était dès le commencement;
    toutefois elle ne s'était point encore fait connaître aux hommes; pour les anges, elle
    s'était montrée à eux, ils la voyaient et s'en nourrissaient comme d'un pain approprié
    à leur nature. Néanmoins, que dit l'Ecriture? « L'homme a mangé le pain « des Anges
    (Ps. LXXVII, 25.) ». La vie s'est donc manifestée en s'incarnant; de la sorte, ce que le coeur seul
    pouvait apercevoir, des yeux de chair étaient à même de le contempler, et le coeur
    pouvait, par là, parvenir à sa guérison. Le coeur seul est capable de voir le Verbe,
    mais des yeux de chair peuvent apercevoir un corps. Il nous était donc possible
    d'apercevoir le corps du Christ, mais contempler le Verbe cela nous était impossible; si
    donc le Verbe s'est fait chair, c'était pour apparaître à nos regards et guérir ce qui
    pouvait, en nous, considérer le Verbe.
ce que le mot « témoins » veut dire en cette langue: c'est un mot
    qui se trouve sur les lèvres de tout le monde, et qui, en religion, a son sens propre;
    ceux que, en latin, nous appelons témoins, les Grecs leur donnent le nom de martyrs.
    Puisse ce nom des martyrs être si bien gravé dans notre coeur, que nous les imitions
    dans leurs souffrances au lieu de les poursuivre de nos mépris. « Nous l'avons vu et
    nous en sommes témoins » s'exprimer ainsi, c'était donc dire: Nous l'avons vu, et nous
    sommes martyrs. En rendant témoignage de ce qu'ils ont vu eux-mêmes, ou de ce qu'ils ont
    entendu dire aux témoins mêmes des événements, les martyrs ont déplu aux hommes
    contre lesquels ils déposaient; voilà pourquoi ils ont souffert ce qu'ils ont souffert.
    Les martyrs sont donc les témoins de Dieu. Le Seigneur a voulu avoir des hommes pour

    témoins, afin de leur servir de témoin à son tour. « Nous l'avons vu », dit Jean, a
    et nous en sommes témoins ». Où les Apôtres l'ont-ils vu? Dans son apparition.
    Qu'est-ce à dire, dans son apparition? Dans le soleil, ou, en d'autres termes, dans la
    lumière de ce monde. Et comment a-t-on pu voir dans le soleil celui qui l'a créé?
    Evidemment parce qu' « il a placé son pavillon dans le soleil ; il semblable à un
    époux qui sort de son lit nuptial, pareil à un géant, il s'est élancé ci pour fournir
    sa course (Ps. XVIII, 6.) ». Antérieur au soleil qu'il a tiré du néant, à l'aurore, à tous les
    astres, à tous les anges, ce vrai Créateur de toutes choses (« car toutes choses ont
    été faites « par lui, et sans lui rien n'a été fait (Jean, I, 3.) »), a voulu se faire voir
    par les yeux de chair qui contemplent le soleil; aussi a-t-il placé son pavillon dans le
    soleil, c'est-à-dire qu'il a montré son humanité au grand jour de ce monde; le sein
    d'une Vierge a servi de lit nuptial à cet époux, car dans ces virginales entrailles se
    sont unis un époux et une épouse: l'époux était le Verbe ; l'épouse, notre humanité;
    en effet, il est écrit : « Et ils seront deux dans une seule chair (Gen. II, 21.)». Et le Sauveur
    a ajouté dans l'Evangile : « C'est pourquoi ils 
ne sont plus deux, mais une seule chair (Matth. XIX, 6.) ». Isaïe lui-même nous
    rappelle d'une manière bien juste que ces deux ne font qu'un; car, en parlant de la
    personne du Christ, il s'exprime en ces termes : « Il a paré ma tête d'une couronne,
    comme celle d'un époux, et il m'a orné de pierreries comme une épouse (Isa. LXI,    10.) ». On
    croirait n'entendre parler qu'un seul et même personnage, puisqu'il parle. de lui-même
    comme étant, tout à la fois, époux et épouse, parce qu' « ils ne sont pas deux, mais
    une seule chair », parce que « le Verbe s'est fait chair » et qu' « il a habité parmi
    nous » . A cette chair s'unit l'Eglise, et alors se parfait le Christ ; alors il devient
    tête et corps.
3. «Et nous en sommes témoins »,
    dit l’Apôtre, « et nous vous annonçons cette vie éternelle qui était dans le
    Père, et qui est apparue en nous »; c'est-à-dire, qui est apparue parmi nous, ou, pour
    parler plus clairement, qui nous est apparue. « Ce que nous avons vu et entendu, nous
    vous l'annonçons ». Que votre charité y fasse attention. « Ce que nous avons vu et
    entendu, nous vous l'annonçons ». Les Apôtres ont vu le Seigneur en personne,
    présent dans la chair, ils ont entendu les paroles qui sont tombées de ses lèvres, et
    ils nous l'ont annoncé. Nous l'avons donc entendu, mais nous ne l'avons pas vu ; en
    sommes-nous moins heureux que ceux qui ont vu et entendu ? Pourquoi, alors, Jean
    ajoute-t-il : « Afin que vous entriez en société avec nous? » Les Apôtres ont vu, et
    nous nous n'avons rien vu, et cependant nous sommes en société avec eux, parce qu'avec
    eux nous avons une seule et même foi. Un d'entre eux a eu beau voir, il n'a pas cru ;
    pour croire, il a voulu toucher de ses mains, et il a dit : « Je ne croirai pas avant
    d'avoir mis a mes doigts dans la plaie des clous, et ma « main dans son côté ». Celui
    qui se présente sans interruption aux regards des Esprits célestes, s'est, pour un
    temps, laissé toucher par des mains d'hommes; le disciple précité le toucha donc et
    s'écria : « Mon Seigneur et mon Dieu ! » Pour nous consoler de ce qu'il nous est
    impossible de le toucher nous-mêmes autrement. que par la foi, puisqu'il est déjà assis
    à la droite de son Père, le Sauveur lui répondit: «Thomas, parce que tu as vu, tu as
    cru ; bienheureux, ceux qui ne, voient pas et qui croient (Jean, XX, 25-29.) ».C'est de nous qu'il a 
4. « Or, ce que nous vous disons, nous
    l'avons appris de la bouche de Jésus-Christ avant de vous l'annoncer ». Que signifient
    ces paroles ? Les Apôtres ont vu et touché de leurs mains le Verbe de vie. Car le Fils
    unique de,Dieu, qui était dès le commencement, s'est rendu visible et palpable dans le
    temps. A quoi s'est-il réduit? Que nous a-t-il annoncé de nouveau ? Qu'a-t-il voulu nous
    enseigner? Pourquoi le Verbe a-t-il fait ce qu'il a fait? Pourquoi s'est-il incarné?
    Pourquoi, étant Dieu, supérieur à tous les êtres, a-t-il souffert, de la part des
    hommes, des traitements indignes de lui? Pourquoi a-t-il enduré que des mains créées
    par lui, lui donnassent des soufflets? Qu'a-t-il voulu nous enseigner, nous montrer et
    nous annoncer par là (2) Ecoutons : car entendre le récit des événements qui ont eu
    lieu de la naissance et de la mort du Christ, sans tirer profit des enseignements qui en
    découlent, c'est occuper son esprit de pensées oiseuses, et ne pas le fixer par des
    réflexions dignes de lui. De quelle importante chose est-il question ? Quel profit
    s'agit-il de faire ? Fais-y attention. Qu'a-t-il voulu enseigner? Qu'a-t-il prétendu
    annoncer? Ecoute bien, le voici : « Que Dieu « est la lumière même, et qu'il n'y a
    point « en, lui, de ténèbres ». Jean nous a parlé de lumière, et pourtant son
    langage n'est pas clair : il serait bon pour nous que la lumière dont il nous a parlé,
    projetât ses rayons sur nos coeurs pour nous faire voir ce qu'il a voulu nous dire.
    Voici, ce que nous vous annonçons, c'est « que Dieu est la lumière même, et qu'il n'y
    a point en lui de ténèbres». Où est l'audacieux capable de dire (165) qu'il y a
    des ténèbres en Dieu? Qu'est-ce que la lumière? Qu'est-ce que les ténèbres? Que
    personne ne tienne à cet égard un langage conforme à la nature des yeux de notre corps.
    « Dieu est lumière ». Quelqu'un me dira peut-être : Le soleil est aussi lumière, et
    la lune pareillement, et un flambeau également. Mais la lumière divine doit être bien
    autrement vive, bien autrement éclatante et infiniment supérieure à toutes les autres.
    Autant Dieu diffère des choses de ce monde, le Créateur des créatures, la sagesse de ce
    qu'elle a fait; autant et bien plus encore cette lumière diffère de toute autre.
    Peut-être en serons-nous voisins, si nous parvenons à savoir ce qu'elle est et si nous
    nous en approchons afin d'être éclairés : car, en nous-mêmes , nous sommes ténèbres;
    mais si elle nous éclaire de ses rayons, nous pouvons devenir lumière et n'être point
    confondus par elle; nous sommes en effet, pour nous, un sujet de confusion. Qui est-ce qui
    est confus de lui-même ? Celui qui se reconnaît pécheur. Qui est-ce qui n'est pas
    confondu par la lumière divine? Celui qui en est éclairé. Qu'est-ce qu'être éclairé
    par elle? Celui qui s'aperçoit que le péché l'a précipité dans les ténèbres, qui
    désire être éclairé des rayons de la lumière, celui-là s'approche d'elle : voilà
    pourquoi le Psalmiste a dit : « Approchez-vous de lui, et vous serez éclairés, et la
    honte ne sera plus sur votre visage (Ps. XXXIII, 6.) ». Elle ne te fera point rougir, si, au
    moment où elle te fera voir tes souillures, tu en conçois du déplaisir et si tu
    cherches à te revêtir de son éclatante beauté. Voilà ce que le Sauveur veut
    t'enseigner.

Dernière modification par Arbiel (Le 28/02/2021, à 00:44)


Arbiel Perlacremaz
Dell Vostro Ubuntu 18.04 64 bits, LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#16 Le 28/02/2021, à 01:08

Arbiel

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Si tu veux faire le travail sur toutes les pages référencés dans le lien que tu as publié, voila la liste des pages à traiter

https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821328
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821329
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821330
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821331
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821332
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821333
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821334
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821335
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821336
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821337
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821338
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821339
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821340
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821341
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821342
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821343
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821344
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821345
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821346
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821347
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821348
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821349
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821350
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821351
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821352
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821353
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821354
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821355
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821356
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821357
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821358
https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821359

Pour ce faire, tu peux modifier un peu le script pour qu'il exécute la page donnée en paramètre sur une ligne de commande

python chemin_d_acces/script.py page_à_traiter

et qu'il enregistre le résultat dans un fichier au lieu de l'afficher sur l'écran.

Bon courage

Arbiel


Arbiel Perlacremaz
Dell Vostro Ubuntu 18.04 64 bits, LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#17 Le 28/02/2021, à 10:37

L'Africain

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Super merci! Les modules sont installé reste que Re, que je trouve pas dans les dépôts?


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#18 Le 28/02/2021, à 11:21

Arbiel

Re : Integrer notes dispersées dans un html à l'endroit précis de la note


Arbiel Perlacremaz
Dell Vostro Ubuntu 18.04 64 bits, LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#19 Le 28/02/2021, à 14:26

L'Africain

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Je viens d'installer le paquet python3-regex, je lance le script et j'ai le retour suivant:

python notes.py index.htm 
  File "notes.py", line 15
SyntaxError: Non-ASCII character '\xc3' in file notes.py on line 15, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Pour re, après avoir installer python3-pip:

python3.8 -m pip install re
ERROR: Could not find a version that satisfies the requirement re (from versions: none)
ERROR: No matching distribution found for re

Dernière modification par L'Africain (Le 28/02/2021, à 14:38)


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#20 Le 28/02/2021, à 20:20

Arbiel

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Bonsoir

Je suppose que dans ta configuration, Python comprend que le script est encodé en ASCII, ce qui n'est pas le cas. J'ai fait quelques modifications pour indiquer que le script est encodé en utf-8.  J'ai également supprimé l'hypothèse selon laquelle les notes de bas de page sont limitées à 9, ce qui est certainement probable, mais pas certain.


Le test que j'ai ensuite exécuté à fonctionné.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys
import os
from bs4 import BeautifulSoup as btfs
import requests
import regex as re	
import html as xhtml
def url_lire(url=None, html=True):
	"""Lecture d'une url."""
	if url is None:
		return None
	try:
		if html:
			doc_html=xhtml.unescape(requests.get(url, timeout=2).text)
		else:
			doc_html=requests.get(url, timeout=2).text
	except requests.exceptions.ConnectionError:
		print("La connexion au serveur distant n'a pas pu être établie")
		return None
	except requests.exceptions.Timeout:
		print("Le serveur distant ne répond pas")
		return None
	else:
		return doc_html

def local_lire(fic=None, html=True):
	"""Lecture de l'intégralité d'un fichier."""
	if fic is None:
		return None
	try:
		if html:
			return xhtml.unescape(open(fic , 'rt', newline='\r').readline())
		else:
			return open(fic , 'rt', newline='\r').readline()
	except FileNotFoundError:
		print ('Le fichier «' +fic+"» n'existe pas.")
		return None 

def xml_lire(source, décodeur='xml', html=True, trace=False):
	"""Création d'un document xml à partir d'une url ou d'un fichier.""" 
	if trace:
		print('lecture '+source)
	if source.startswith('http',0,4):
		doc=url_lire(url=source, html=html)
		décodAvec="html5lib"
	else:
		doc=local_lire(fic=source, html=html)
		décodAvec="html.parser"
	if décodeur is None:
		décodeur=décodAvec	
	if doc is not None :
		try:
			return btfs(doc,décodeur)
		except:
			return None
	else:
		return None
			
def xml_ecrire(source,dest=None, trace=False):
	if dest is None:
		import tempfile
		dest=tempfile.mkstemp(suffix='.xml', prefix='pyth_')[1]
	f=open(dest, 'w')
	if isinstance(source, str):
		f.write(source)
	elif isinstance(source, btfs):
		f.write(str(source))
	else:
		print('Le paramètre source ne peut pas être écrit dans un fichier texte')
		return None
	return dest
#

def lesParagraphes(nœud):
	return nœud.has_attr('class') and (nœud['class']=='MsoNormal' or nœud['class']=='MsoFootnoteText')
	
page='https://www.bibliotheque-monastique.ch/bibliotheque/bibliotheque/saints/augustin/jean/parthes/index.htm#_Toc6821331'

letexte_html=xml_lire(page)

paragraphes=[]
ensNotes={}
lesfiltres=[]
substitution=False
for para in letexte_html.find_all(lesParagraphes):
	if para['class']=='MsoNormal':
		paragraphes.append(para)
	else:
		lesnotes=str(''.join(para.strings)).split('—')
		for chacune in lesnotes:
			chacune=chacune.replace('\n','').lstrip()
			ensNotes[chacune[0]]=re.sub('^[1-9][0-9]?[.]?','',chacune).lstrip()
			lesfiltres.append(chacune[0])
		filtre='[(](' + '|'.join(lesfiltres) +  ')[)]'
		for parag in paragraphes:
			letexte=str(''.join(parag.strings))
#			print('traitement paragraphe : ' + letexte[:26])
			while f:=re.search(filtre,letexte):
				letexte=letexte.replace(f.group(0),ensNotes[f.group(1)].join(('(',')')))
				substitution=True
			if substitution:
				parag.string=letexte
				print(letexte)
			substitution=False
		paragraphes=[]
		ensNotes={}
		lesfiltres=[]

Arbiel Perlacremaz
Dell Vostro Ubuntu 18.04 64 bits, LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#21 Le 28/02/2021, à 20:41

L'Africain

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

je ne sais pas pourquoi mais ça fonctionne toujours pas:

$ python ./notes.py index.htm 
  File "./notes.py", line 41
    def xml_lire(source, décodeur='xml', html=True, trace=False):
                          ^
SyntaxError: invalid syntax

Sachant que j'ai mon fichier à traiter à côté du script python. Le fichier s'appelle index.htm. j'ai modifier la ligne 79 comme suit:

page='./index.htm'

Encore merci!


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#22 Le 28/02/2021, à 22:54

Arbiel

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Dans ma version de Python (3.8.2), même sans la ligne
# -*- coding: utf-8 -*-
je peux sans problème accentuer des variables, ou même les nommer en grec, ce que je fais fréquemment.

Dans ton cas, il semble que cela ne soit pas possible, et je ne sais pas comment résoudre ce point. Il te faut dont remplacer les "é" et les "œ" par des" e". Cela concerne, si ton script est numéroté comme le mien, les lignes :

41: def xml_lire(source, décodeur='xml', html=True, trace=False):
47: décodAvec="html5lib"
50: décodAvec="html.parser"
51: if décodeur is None:
52: décodeur=décodAvec
55: return btfs(doc,décodeur)
76: def lesParagraphes(nœud):
77: return nœud.has_attr('class') and (nœud['class']=='MsoNormal' or nœud['class']=='MsoFootnoteText')


Arbiel Perlacremaz
Dell Vostro Ubuntu 18.04 64 bits, LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#23 Le 02/03/2021, à 12:06

L'Africain

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Salut,
Je viens de remplacer les caractères spéciaux dans le script, j'ai maintenant cette erreur:

python notes.py index.htm 
  File "notes.py", line 101
    while f:=re.search(filtre,letexte):
            ^
SyntaxError: invalid syntax

Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#24 Le 02/03/2021, à 16:35

Arbiel

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Je te suggère de passer à la même version de Python que celle que j'utilise

remi@remi-Vostro-3550:~$ python --version
Python 3.8.2
remi@remi-Vostro-3550:~$ 

La formulation que j'ai utilisée est une nouveauté de Python 3.8:

https://docs.python.org/3/whatsnew/3.8.html#summary-release-highlights a écrit :

Assignment expressions

There is new syntax := that assigns values to variables as part of a larger expression. It is affectionately known as “the walrus operator” due to its resemblance to the eyes and tusks of a walrus.

In this example, the assignment expression helps avoid calling len() twice:

if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

A similar benefit arises during regular expression matching where match objects are needed twice, once to test whether a match occurred and another to extract a subgroup:

discount = 0.0
if (mo := re.search(r'(\d+)% discount', advertisement)):
    discount = float(mo.group(1)) / 100.0

The operator is also useful with while-loops that compute a value to test loop termination and then need that same value again in the body of the loop:

# Loop over fixed length blocks
while (block := f.read(256)) != '':
    process(block)

Sinon, il faut modifier la boucle

			while f:=re.search(filtre,letexte):
				letexte=letexte.replace(f.group(0),ensNotes[f.group(1)].join(('(',')')))
				substitution=True

par

			fini=False
			while not fini:
				f=re.search(filtre,letexte)
				if f:
					letexte=letexte.replace(f.group(0),ensNotes[f.group(1)].join(('(',')')))
					substitution=True
				else:
					fini=True

Dernière modification par Arbiel (Le 02/03/2021, à 19:34)


Arbiel Perlacremaz
Dell Vostro Ubuntu 18.04 64 bits, LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#25 Le 02/03/2021, à 21:13

L'Africain

Re : Integrer notes dispersées dans un html à l'endroit précis de la note

Salut,
alors:

python --version
Python 2.7.18

Mais python3.8 est déjà installé selon apt.
Si je lance la commande en précisant la version de python je n'ai plus d'erreur mais je ne vois aucun changement dans le fichier index.htm:

python3.8 notes.py index.htm

Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne