从MS Word文件中删除汉字

时间:2019-03-18 19:48:04

标签: python python-3.x file docx file-writing

我正在尝试使用python创建一个脚本来从MS Word文档中删除中文字符,唯一的问题是该文件最初是中文Word文档,因此格式只是一堆文本框。现在,我的代码能够读取所有文本框,但是由于某些原因,当我尝试 替换字符什么也没有发生。我是python的新手,所以如果有人可以帮助我更好地理解我的代码,那么我将不胜感激。

our_dic = ['≤', '≥', '~', '%', '\n', '\t', '℃']
for x in range(10): 
    our_dic.append(str(x))

temp = set()
trns = None

for x in file_array:
    doc = Document(x)
    rep_dic = {}
    for table in doc.tables:
        print("loading...")
        for row in table.rows:
            for cell in row.cells:
                for paragraph in cell.paragraphs:
                    for letters in paragraph.text:
                        if (ord(letters) < 128) or (letters in our_dic) :
                            temp.add(letters)
                    for k in temp:
                        print(paragraph.text.replace(k, ""))
doc.save(x)
print("I finished your deletion")

现在我正在使用print来测试代码,但是替换似乎并没有打印出中文字符。

1 个答案:

答案 0 :(得分:0)

您为什么要为此使用Python,而不是已经在Word中内置的VBA?您应该尝试这样的事情:

Sub DeleteAllObjects()
For i = ActiveDocument.Shapes.Count To 1 Step -1  
    ActiveDocument.Shapes(i).Delete  
Next i
End Sub

或者,搜索代表所有汉字的特定“格式”,然后用空格代替。

有关更多信息,请参见此。

https://www.extendoffice.com/documents/word/748-word-remove-all-text-boxes.html