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','!','?','.','~',',','(',')','$','-',':',';',"'",'/']
doc = Document('realexample.docx')
docIndex = 0
def delete_paragraph(paragraph):
p = paragraph._element
p.getparent().remove(p)
p._p = p._element = None
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))
removeExcessSpaces = " ".join(translation.split())
if removeExcessSpaces != '':
doc.paragraphs[docIndex].text = removeExcessSpaces
else:
delete_paragraph(doc.paragraphs[docIndex])
docIndex -=1 # go one step back in the loop because of the deleted index
docIndex +=1
だから、テストドキュメントはこのPythonの3 - は、特定の行に空の段落を削除する方法 - pythondocx
Hello
你好
Good afternoon
朋友们
Good evening
晚上好
のように見え、私は以下のこの結果を達成しようとしています。
你好
朋友们
晚上好
現在、コードはすべての空の段落と余分なスペースを削除していますので、私はここでちょっと固まっています。私は、英語の単語から生まれた改行を消去したいだけです。あなたは、英語の単語「WORD」を見つける「\ nを」と、それを追加し、文書からこの新しい結果「WORDを\ n」を削除したら、英語の単語を探して何ができるか
你好
朋友们
晚上好
if文に別の条件を追加してfirstSenが空であることを確認した後、そのままファイルに書き出します –
空であれば、段落を消去しますelseステートメントにあります。ループは、私が取り除きたくない改行(空の段落)を含むすべての段落に行きます。 –
最初のファイルから空の行を翻訳ファイルに書き込む別の条件を記述することをお勧めします。したがって、もしあなたが 'removeExcessSpaces!= '':'を 'ifExcessExcessSpaces!= ''またはfirstSen == '':'に変更することができます。このようにして、空の行が最初にファイル( 'firstSen == ''')から出ていれば、それを書きます(またはその翻訳は、両方とも空であっても問題ありません)。 –