2017-02-17 8 views
0

word-exported-html-fileの変換に問題があります。私はすべてのスタイル情報(太字、イタリック...)で.docファイルのテキストを取得する必要がありました。私のコードのタグクリーナーはうまくいきました。今はタグ付きのresult.txtがあります。Pythonの長い.txtにさまざまな行を組み合わせる

問題は、html-export分割線がどこにあってはならないかということです。彼は一行の間に\ nを置くかもしれない。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
 
<HTML> 
 
<HEAD> 
 
    <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8"> 
 
    <TITLE>19</TITLE> 
 
    <META NAME="GENERATOR" CONTENT="OpenOffice 4.1.3 (Unix)"> 
 
    <META NAME="AUTHOR" CONTENT="IGM"> 
 
    <META NAME="CREATED" CONTENT="20160425;12590000"> 
 
    <META NAME="CHANGEDBY" CONTENT="Arno Michalowski"> 
 
    <META NAME="CHANGED" CONTENT="20160425;13460000"> 
 
    <META NAME="SDFOOTNOTE" CONTENT=";;;;C"> 
 
    <STYLE TYPE="text/css"> 
 
    <!-- 
 
     @page { margin-right: 3.6cm; margin-top: 2.4cm; margin-bottom: 3.4cm } 
 
      P { margin-left: 2cm; text-indent: -2cm; margin-bottom: 0.21cm; direction: ltr; color: #000000; line-height: 0.49cm; text-align: justify; widows: 2; orphans: 2 } 
 
      P.western { font-family: "Times", serif; font-size: 12pt; so-language: de-DE } 
 
      P.cjk { font-family: "Times New Roman", serif; font-size: 12pt } 
 
      P.ctl { font-family: "Times", serif; font-size: 10pt; so-language: ar-SA } 
 
      P.sdfootnote-western { margin-left: 3cm; text-indent: -1cm; margin-bottom: 0cm; font-family: "Times", serif; font-size: 10pt; so-language: de-DE; line-height: 0.42cm; text-align: left } 
 
      P.sdfootnote-cjk { margin-left: 3cm; text-indent: -1cm; margin-bottom: 0cm; font-family: "Times New Roman", serif; font-size: 10pt; line-height: 0.42cm; text-align: left } 
 
      P.sdfootnote-ctl { margin-left: 3cm; text-indent: -1cm; margin-bottom: 0cm; font-family: "Times", serif; font-size: 10pt; so-language: ar-SA; line-height: 0.42cm; text-align: left } 
 
      A.sdfootnoteanc { font-size: 57% } 
 
      A.sdfootnotesym-western { font-family: "Times", serif; font-size: 10pt } 
 
     A.sdfootnotesym-cjk { font-size: 10pt } 
 
     A.sdfootnotesym-ctl { font-family: "Times", serif } 
 
\t --> 
 
\t </STYLE> 
 
</HEAD> 
 
<BODY LANG="en" TEXT="#000000" DIR="LTR"> 
 
<DIV TYPE=HEADER> 
 
    <P LANG="de-DE" ALIGN=CENTER STYLE="margin-bottom: 0.9cm"><SDFIELD TYPE=PAGE SUBTYPE=RANDOM FORMAT=PAGE>184</SDFIELD></P> 
 
</DIV> 
 
<P LANG="de-DE" ALIGN=RIGHT STYLE="margin-left: 0.3cm; text-indent: 0cm; margin-bottom: 0cm; line-height: 0.42cm"> 
 
<FONT FACE="Courier, monospace"><FONT SIZE=2><SPAN STYLE="font-weight: normal"> \t </SPAN></FONT></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US"><SPAN STYLE="font-weight: normal">19</SPAN></SPAN></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Courier, monospace"><FONT SIZE=2><SPAN LANG="en-US"> \t </SPAN></FONT></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">1 \t \t </SPAN></FONT><FONT FACE="Times, serif"><I><B><SPAN LANG="en-US">M</SPAN></B></I></FONT><SUP><FONT FACE="Times, serif"><FONT SIZE=2><I><B><SPAN LANG="en-US">r</SPAN></B></I></FONT></FONT></SUP><FONT FACE="Times, serif"><I><B><SPAN LANG="en-US">. 
 
Bavoil</SPAN></B></I></FONT><FONT FACE="Courier, monospace"><FONT SIZE=2><SPAN LANG="en-US"> 
 
</SPAN></FONT></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">- 
 
56 ans - clincailler au quai au</SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">[</SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">x</SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">]</SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US"> 
 
fleur</SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">[</SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">s</SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">]</SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US"> 
 
-</SPAN></I></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Courier, monospace"><FONT SIZE=2><SPAN LANG="en-US"><I> \t </I></SPAN></FONT></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">2 \t \t \t </SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">100 
 
toujours l'ouïe</SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">°</SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US"> 
 
dure</SPAN></I></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Courier, monospace"><FONT SIZE=2><SPAN LANG="en-US"> \t </SPAN></FONT></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">3 \t </SPAN></FONT><FONT FACE="Times, serif"><I><B><SPAN LANG="en-US"> \t 26 
 
mai</SPAN></B></I></FONT><SUP><FONT FACE="Times, serif"><FONT SIZE=2><A CLASS="sdfootnoteanc" NAME="sdfootnote1anc" HREF="#sdfootnote1sym"><SUP>1</SUP></A></FONT></FONT></SUP><FONT FACE="Courier, monospace"><FONT SIZE=2><SPAN LANG="en-US"><I> 
 
</I></SPAN></FONT></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">- 
 
l'oreille droite jette du pus depuis 6 ou 8 mois - ce mois</SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">[</SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">-</SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">]</SPAN></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Courier, monospace"><FONT SIZE=2><SPAN LANG="en-US"><I> \t </I></SPAN></FONT></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">4 \t \t \t </SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">ci 
 
encore plus - surdité de cette oreille depuis 2 mois</SPAN></I></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Times, serif"><I><SPAN LANG="en-US"> \t </SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">5 \t \t \t </SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">il 
 
a eu un coup d'air en route - depuis 15 ans il a eu</SPAN></I></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Times, serif"><I><SPAN LANG="en-US"> \t </SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">6 \t \t \t </SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">l'oreille 
 
dure alternativement l'une et l'autre -</SPAN></I></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Times, serif"><I><SPAN LANG="en-US"> \t </SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">7 \t \t \t </SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">maintenant 
 
alternativement aussi</SPAN></I></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Times, serif"><I><SPAN LANG="en-US"> \t </SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">8 \t \t \t </SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">douleur 
 
</SPAN></I></FONT><SUP><FONT FACE="Courier New, monospace"><SPAN LANG="en-US">┌</SPAN></FONT></SUP><FONT FACE="Times, serif"><I><SPAN LANG="en-US">dans</SPAN></I></FONT><SUP><FONT FACE="Courier New, monospace"><SPAN LANG="en-US">┐</SPAN></FONT></SUP><FONT FACE="Times, serif"><I><SPAN LANG="en-US"> 
 
sur l'os externe du coude il ne peut rien lever en</SPAN></I></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Times, serif"><I><SPAN LANG="en-US"> \t </SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">9 \t \t \t </SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">ayant 
 
la main tournée en dedans -</SPAN></I></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Times, serif"><I><SPAN LANG="en-US"> \t </SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">10 \t \t \t </SPAN></FONT><FONT FACE="Times, serif"><I><SPAN LANG="en-US">dort, 
 
mange bien</SPAN></I></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Times, serif"><I><SPAN LANG="en-US"> \t </SPAN></I></FONT><FONT FACE="Times, serif"><SPAN LANG="en-US">11 \t \t \t avant 
 
6 semaines de l'onguent de tart.em. derrière l[']oreille </SPAN></FONT> 
 
</P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Times, serif"><SPAN LANG="en-US"> \t 12 \t \t \t qui 
 
lui poussait de boutons très dou-</SPAN></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Times, serif"><SPAN LANG="en-US"> \t 13 \t \t \t loureux 
 
et causait un fièvre°</SPAN></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Times, serif"><SPAN LANG="en-US"> \t 14 \t \t \t n'entend 
 
point du tout ma montre d'or à droit[e]</SPAN></FONT></P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Times, serif"><SPAN LANG="en-US"> \t 15 \t \t \t mais 
 
à la gauche en 8 pouce de distance </SPAN></FONT> 
 
</P> 
 
<P LANG="de-DE" CLASS="western" STYLE="margin-bottom: 0cm"><FONT FACE="Times, serif"><SPAN LANG="en-US"> \t 9 \t * \t \t Tinctura 
 
Sulph. </SPAN></FONT><FONT FACE="Times, serif">1 globule C 30 en 14 
 
C. 1 Spiritus vini</FONT></P>

The want-to file should look like this。しかし、覚えておいてください、私は今すべての太字と斜体の情報を持つタグを持っています。それはちょうどlinebreaksと彼らがどこにあるのです。

すべての行は\ t \ dで始まり、改行で終わる必要があります。しかし、そのたわごとの輸出のため、それはthisのように見えます。

\ t \ dで始まらない行はすべて、\ t \ dで始まる最初の行と結合できますか?

私はre.subを使いたかったのですが、私は正規表現を使いこなすと思います。私はこのようなことを試みた。私のpythonのスキルは残念なことに、それはデジタルヒューマニズムではありません。

regex1 = r"(^\t\d.*?)\n(.*?)\n" 
final = re.sub(regex1, "\2\1\n", f) 

不要なものをすべて削除するだけの方法はありませんか?\ n?

ありがとうございました。任意のコードが評価されます。あなたがmess、言う、という変数にすべてのあなたのHTMLを持っていると仮定すると\t\dが続いていないとき、あなたは、単に

mess.replace("\n","") 
+0

元のテキストは.docに約1000ページあります。私たちにはさらに多くのファイルがあります。それはなぜ自動的に解決するべきなのか – fabsurd

答えて

0

"""\n"を交換しない可能性が

+0

ありがとうございました。私の問題を解決するかもしれない。私はそれを試してみるよ! – fabsurd

0

は、正規表現の先読みと簡単です。

final = re.sub(r'\n(?!\t\d)', '', f) 

否定先読み(?!subregex)はすぐに表向きの試合後のテキストは、先読みでsubregexに一致する場合、一致をスキップする正規表現エンジンを強制します。

+0

それから私はすべての\ nを置き換えます。しかし、私はそれらが必要です。それは、\ t \ dの前に来ていない\ nについてです。 – fabsurd

+0

@fabsurd私は理解しています。私が特定の問題を今見分けることはできませんが、[BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/)はあなたを助けることができるはずです。私は数時間後にもう一度チェックインし、それまでに解決されていない場合はそれに戻ります。 – Anomitra

+0

はすばらしく見えます。私はそれをチェックしなければならない! – fabsurd

関連する問題