我在except Exception as exc: # catch Exception or it's subclasses only
logging.exception(exc) # log for purpose not to miss exception you can fix
response = False
下运行cygwin
具有一个如下所示的字典文件(windows 10
)
1-dictionary.txt
它们之间的分隔符是labelling labeling
flavour flavor
colour color
organisations organizations
végétales végétales
contr?lée contrôlée
" "
(TAB
s)。
字典文件被编码为\t
。
想用第二列中的单词和HTML实体替换第一列中的单词和符号。
我的源文件(UTF-8
)具有目标UTF-8和ASCII符号。源文件也被编码为2-source.txt
。
示例文本如下:
UTF-8
我在Shell脚本(./3-script.sh)中运行以下Cultivar was coined by Bailey and it is generally regarded as a portmanteau of "cultivated" and "variety" ... The International Union for the Protection of New Varieties of Plants (UPOV - French: Union internationale pour la protection des obtentions végétales) offers legal protection of plant cultivars ...Terroir is the basis of the French wine appellation d'origine contrôlée (AOC) system
单行代码:
sed
将sed -f <(sed -E 's_(.+)\t(.+)_s/\1/\2/g_' 1-dictionary.txt) 2-source.txt > 3-translation.txt
中的英语(en-GB)单词替换为美国(en-US)单词成功。
但是,将ASCII符号(例如引号和UTF-8单词)替换会产生以下结果:
3-translation.txt
如果我仅使用特定的符号(而不是完整的单词),则会得到如下结果:
vvégétales#x00E9;gvégétales#x00E9;tales)
contrcontrôlée#x00F4;lcontrôlée#x00E9;e (AOC)
ASCII引号后面附加vé#x00E9;gé#x00E9;tales
"#x0022cultivated"#x0022
contrô#x00F4;lé#x00E9;e
-不会被替换。
类似地,UTF-8符号附加了其HTML实体-未被HTML实体替换。
预期输出如下:
"
如何修改v#x00E9;g#x00E9;tales
#x0022cultivated#x0022
contr#x00F4;l#x00E9;e
脚本,以便用字典文件中定义的等效HTML实体替换目标ASCII和UTF-8符号?