2017-03-15 8 views
0
from docx import Document 

alphaDic = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','!','?','.','~',',','(',')','$','-',':',';',"'",'/'] 

while docIndex < len(doc.paragraphs): 
    firstSen = doc.paragraphs[docIndex].text 
    rep_dic = {ord(k):None for k in alphaDic + [x.upper() for x in alphaDic]} 
    translation = (firstSen.translate(rep_dic)) 
    removeSpaces = " ".join(translation.split()) 
    removeLineBreaks = removeSpaces.replace('\n','') 
    doc.paragraphs[docIndex].text = removeLineBreaks 

    docIndex +=1 

文書から改行を削除しようとしていますが、機能しません。 私はまだreadlinesは、テキストファイルのいずれかのタイプを読むことができるので、あなたが欲しいの行を書き換えてファイルを開き、使用したいいけないラインを無視することができますPython 3 - 行/段落区切りを削除する方法

Hello 


There 

よりもむしろ

Hello 
There 
+0

try( '\ r \ n'、 '')を置き換えますか? –

答えて

1

あなたがしたいことは、空の段落を取り除くことだと思います。翻訳と等しい場合Scanny

あなたのコードで

、あなたがチェックすることができ*:

def delete_paragraph(paragraph): 
    p = paragraph._element 
    p.getparent().remove(p) 
    p._p = p._element = None 

コードによって:助けることができる次の関数は、それはあなたがしたくない特定の段落を削除します''かどうか、そして、あなたのコードは次のようになるので、それは、その後、delete_paragraph関数を呼び出している場合:

while docIndex < len(doc.paragraphs): 
    firstSen = doc.paragraphs[docIndex].text 
    rep_dic = {ord(k):None for k in alphaDic + [x.upper() for x in alphaDic]} 
    translation = (firstSen.translate(rep_dic)) 
    if translation != '': 
     doc.paragraphs[docIndex].text = translation 
    else: 
     delete_paragraph(doc.paragraphs[docIndex]) 
     docIndex -=1 # go one step back in the loop because of the deleted index 

    docIndex +=1 

* Reference- feature: Paragraph.delete()

0

を取得しています。

"""example""" 

file = open("file name", "w") 
for line in file.readlines(): 
    if (line != ''): 
     file.write(line) 
+1

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 – DimaSan

+0

アドバイスありがとうございます。私は自分のベストを尽くす。 –

1

パッケージには、テキストを抽出するexample programが付属しています。

しかし、あなたの問題は、あなたが段落を操作しようとしているという事実から起こると思います。しかし、段落間の区切りは、改行が起こっているところです。つまり、プログラムを空の文字列('')に置き換えても、末尾に改行が追加されます。

サンプルプログラムのアプローチを取って独自の書式設定を行うか、またはあなたが持っている "完全な"段落( "Hello" 、 ""、 "There") - >( "こんにちは"、 "そこ")。

関連する問題