iT邦幫忙

2

如何批次取代Word內容?

  • 分享至 

  • xImage

想請教各位
今天我有很多篇遊記,需要把地名都翻譯成英文
例如:
原始文章:今天要到桃園玩,首先會到大溪老街買名產
我想要的:今天要到Taoyuan玩,首先會到Daxi Old Street買名產

所遇困難點有兩個
第一、Word內建取代只能僅能一次取代一種文字
例如:以下作法只能慢慢的把桃園取代成Taoyuan,台北取代成Taipei,可是這樣太沒效率
我想要批次處理,比如說[桃園:Taoyuan],[台北:Taipei]一次丟到文章中就可以取代完成
https://ithelp.ithome.com.tw/upload/images/20230103/20156615cBrHSInb0Y.jpg
第二、多篇文章同時執行

小妹想請教各位前輩,能不能用Office相關軟體或Python作處理呢? 感謝

淺水員 iT邦大師 6 級 ‧ 2023-01-03 23:31:04 檢舉
這樣「老師站在講臺中間」會變成「老師站在講 Taichung 間」?
「水蜜桃園區」變成「水蜜 Taoyuan 區」?
win895564 iT邦研究生 5 級 ‧ 2023-01-04 08:50:45 檢舉
依照我自己的經驗 真的會遇到像樓上說的情形
不過我自己的做法是將一些特別的詞建立一個dictionary
並且將該dictionary中的桃園或台中換成其他同音詞
最後再將需要轉成英文的詞替換
最後再將該dictionary中的詞替換回原始的字
不清楚還有沒有更好或更高效的方法
froce iT邦大師 1 級 ‧ 2023-01-04 09:57:52 檢舉
現在的話,要不要用chatGPT玩玩看?感覺這種需求很適合。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
wiseguy
iT邦超人 1 級 ‧ 2023-01-04 09:33:01

打開 Word 錄製一個巨集,先試著取代一個字串,然後停止錄製。再去編輯這個巨集。
把取代字串那一段,複製幾份,把各別字串換成其他你要替換的文字,然後再儲存巨集。
接下來就是載入一份檔案就執行一次巨集,就會整篇自動更換了。
https://ithelp.ithome.com.tw/upload/images/20230104/20055081QXF0ktRCmE.png

0
HYHuang
iT邦新手 5 級 ‧ 2023-01-04 10:03:33
aaron3399 iT邦好手 1 級 ‧ 2023-01-04 11:55:27 檢舉

可是原PO好像是用WORD......

1
ckp6250
iT邦好手 1 級 ‧ 2023-01-04 10:53:56

題外話,我的疑問是~
【今天要到Taoyuan玩,首先會到Daxi Old Street買名產】,這樣的【遊記】,是要給本國人看,還是給外國人看?

aaron3399 iT邦好手 1 級 ‧ 2023-01-04 11:53:05 檢舉

疑問+1

淺水員 iT邦大師 6 級 ‧ 2023-01-04 12:32:10 檢舉

感覺可以給外國人學中文用
把地名分離出來比較能專注內容?

0
akajoke
iT邦新手 5 級 ‧ 2023-01-05 14:49:00

很有趣的問題

要改word檔案我不確定你有沒有要「僅限使用word」完成
如果是的話那樓上巨集的方法很棒
如果可以用其他程式語言 建議你用python寫一個"編輯文檔.py"

以下的code我用txt示範因為我沒錢買word(XD)


#在跟此檔案的同資料夾底下放置你要修改的檔案
#因為有修改中文  記得加上後面encoding的參數
f = open('test.txt', 'r',encoding='utf-8-sig')
lines = f.read()

#要修改的對比詞字典
w={
    '各位':'everyone',
    '今天':'today',
    '遊記':'dairy',
    '名產':'something good'
    }

#要取代的字詞(key)存在陣列裡面
space=[]
for key,value in w.items():
    space.append(key)


#迴圈開始改寫檔案內容
for i in range(0,len(space)):
    x=space[i]
    lines=lines.replace(x,w[x])
f.close()

#用覆寫的方式存檔
f = open("test.txt", "r+")
f.write(lines)

以上
可以修改單一個檔案 如果你要一次修改所有檔案
你可以先把所有word檔案放在跟"編輯文檔.py"同一個資料夾
然後用下面的code

具體作法就是先把修改的寫成一個函式 然後檢視所有檔案後
執行這個function


def  All(filename):
    f = open(filename, 'r',encoding='utf-8-sig')
    lines = f.read()

    #要修改的對比詞字典
    w={
        '各位':'everyone',
        '今天':'today',
        '遊記':'dairy',
        '名產':'something good'
        }

    #要取代的字詞(key)存在陣列裡面
    space=[]
    for key,value in w.items():
        space.append(key)


    #迴圈開始改寫檔案內容
    for i in range(0,len(space)):
        x=space[i]
        lines=lines.replace(x,w[x])
    f.close()

    #用覆寫的方式存檔
    f = open(filename, "r+")
    f.write(lines)


import os
path = "./"

dirs = os.listdir( path )
for file in dirs:
    if (file!='編輯文檔.py'):
     All(file)

就可以完成你想要一次改所有檔案的字典需求
裝個python 這個問題是可以一次通吃 快速解決的

我要發表回答

立即登入回答