我仍然是初學者,所以答案可能很簡單,但我在網上找不到解決方案(至少我能理解)。目前我正在通過應用程式“Anki”學習著名的藝術作品。所以我在網上為它匯入了一個包含 700 多件的套牌。
遺憾的是,這些作品的名稱是英文的,我想用我的母語(德語)來學習它們。所以我想撰寫一個腳本來自動翻譯應用程式內的所有名稱。我首先為每位藝術家及其藝術作品創建了一本字典(要自動填充這本字典,閱讀應用程式是另一次的任務)。
art_dictionary = {
"Wassily Kandinsky": "Composition VIII",
"Zhou Fang": "Ladies Wearing Flowers in Their Hair",
}
我的計劃是訪問存盤這幅畫的德語名稱的維基百科(或任何其他藝術品資料庫)(因為用英格詞典翻譯它通常會回傳錯誤的結果,因為德語翻譯可能會有很大差異):
將名稱中的每個空格字符替換為下劃線
讓 python 訪問該畫的維基百科頁面:
import re from urllib.request import urlopen painting_name = "Composition_VIII" #this is manual input of course url = "wikipedia.org/wiki/" painting_name page = urlopen(url)以某種方式訪問??該站點的德語版本并提取這幅畫的德語名稱。
html = page.read().decode("utf-8") pattern = "<title.*?>.*?</title.*?>" #I think Wikipedia stores the title like <i>Title</i> match_results = re.search(pattern, html, re.IGNORECASE) title = match_results.group() title = re.sub("<.*?>", "", title)將其存盤在串列或變數中
將其插入 anki 應用程式
也許這是不可能的或“過度設計”,但我在此程序中學到了很多東西。
我試圖在網上搜索解決方案,但找不到與我的問題類似的任何東西。
uj5u.com熱心網友回復:
您可以將字典理解與 replace 方法一起使用來更新字典的所有值(在本例中為藝術作品的名稱)。
art_dictionary = {
"Wassily Kandinsky": "Composition VIII",
"Zhou Fang": "Ladies Wearing Flowers in Their Hair",
}
art_dictionary = {key:value.replace(' ', '_') for key,value in art_dictionary.items()}
print(art_dictionary)
# Output: {'Wassily Kandinsky': 'Composition_VIII', 'Zhou Fang': 'Ladies_Wearing_Flowers_in_Their_Hair'}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/526853.html
