簡體   English   中英

如何使用python搜索和替換ms word doc中所有出現的字符串?

[英]How do I search & replace all occurrences of a string in a ms word doc with python?

我此刻很難過。 基於我可以使用Win32 COM替換word文檔中的文本嗎? 我能夠編寫一個簡單的模板系統,用模板文字doc(在Python中)生成word文檔。

我的問題是“文本字段”中的文字找不到那種方式。 即使在Word本身也無法搜索所有內容 - 您實際上必須在“主文檔”和“文本字段”之間進行選擇。 作為Windows世界的新手,我嘗試瀏覽VBA文檔,但沒有找到任何幫助(可能是由於“文本字段”是一個非常常見的術語)。

word.Documents.Open(f)
wdFindContinue = 1
wdReplaceAll = 2
find_str = '\{\{(*)\}\}'
find = word.Selection.Find

find.Execute(find_str, False, False, True, False, False, \
True, wdFindContinue, False, False, False)

while find.Found:
    t = word.Selection.Text.__str__()
    r = process_placeholder(t, answer_data, question_data)

    if type(r) == dict:
        errors.append(r)
    else:
        find.Execute(t, False, True, False, False, False, \
        True, False, False, r, wdReplaceAll)

這是我的代碼的相關部分。 我現在能夠解決所有問題(提示:如果你想用超過256個字符替換字符串,你必須通過剪貼板等來完成...)

也許您可以使用UNO組件技術來使用OpenOffice API 使用Python-UNO橋,您可以連接到以無頭模式運行的OpenOffice實例。 看一下教程即可開始使用。
這可能對您的場景來說太過分了,但它是一個非常強大且靈活的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM