我有一个巨大的文件,看起来像这样:
6814;gymnocéphale;185;151;49
6815;gymnodonte;83;330;0
6816;gymnosome;287;105;42
6817;hà mã;69;305;0
6818;hải âu;81;294;0
6819;hải cẩu;64;338;0
6820;hải yến;62;269;0
6848;histiophore;57;262;0
6849;hiverneur;56;248;0
6850;hổmang;54;298;0
6851;holobranche;97;329;0
6852;hoplopode;65;296;0
6853;hươu cao cổ152;298;0
6854;huyền đề62;324;0
6855;hyalosome;73;371;0
6883;jumarre;83;295;0
6884;kéc;86;326;0
6885;kền kền;73;303;0
6886;khoang;64;323;0
6887;khướu;62;325;0
如您所见,该文件包含一些unicode十进制数,在使用该文件之前,我想将它们全部替换为拉丁字符。即使用utf-8编码打开它,错误也不会被抑制。你知道吗
你知道怎么做吗。我想创建一个字典并检索索引2中的数字。你知道吗
for : 6883;jumarre;83;295;0; => i have 83
for : 6887;khướu;62;325;0 => i have ớ => which is false , i should have 62
with codecs.open('JeuxdeMotsPolarise_test.txt', 'r', 'utf-8', errors = 'ignore') as text_file:
text_file =(text_file.read())
#print(text_file)
dico_lexique = ({i.split(";")[1]:i.split(";")[2:]for i in text_file.split("\n") if i})
这是trying@serge命题给出的结果,但行间留有空格。你知道吗
6814;gymnocéphale;185;151;49
6815;gymnodonte;83;330;0
6816;gymnosome;287;105;42
6817;hà mã;69;305;0
6818;hi âu;81;294;0
6819;hi cu;64;338;0
6820;hi yn;62;269;0
6848;histiophore;57;262;0
6849;hiverneur;56;248;0
6850;h mang;54;298;0
6851;holobranche;97;329;0
6852;hoplopode;65;296;0
6853;hu cao c;152;298;0
6854;huyn ;62;324;0
6855;hyalosome;73;371;0
6883;jumarre;83;295;0
6884;kéc;86;326;0
6885;kn kn;73;303;0
6886;khoang;64;323;0
6887;khu;62;325;0
编辑:我重新下载原始文件和错误的失踪“;”已得到纠正。你知道吗
例如:
=>;6850;hổmang;54;298;0(这就是现在更新文件中的显示方式)
谢谢大家
先修复文件,然后再将其加载到CSV解析器中。你知道吗
假设评论中的Maarten是正确的,更改编码:
然后用适当的字符替换转义符。你知道吗
运行替换后
JeuxdeMotsPolarise_test.utf8.txt
的内容:此文本通常不是UTF8或Unicode。是HTML-encoded text,很可能是越南人。这些转义序列对应于越南语字符,例如
ư
isư-事实上,我只是在SO编辑框中输入了编辑序列,出现了正确的字符。ớ
是ớ。你知道吗将整个文本复制到代码块外会产生
6814;裸体;185;151;49
6815;金门洞;83;330;0
6816;裸子体;287;105;42
公元6817年;公元69年;公元305年;公元0年
6818;哈伊乌;81;294;0
第6819页;hải cẩu;第64页;第338页;第0页
第6820页;第62页;第269页;第0页
6848;组织粒;57;262;0
6849;海文纳;56;248;0
6850小时
6851;全息鳃;97;329;0
6852;跳码;65;296;0
6853小时432小时417小时152小时298小时
6854;休伊
6855;透明体;73;371;0
6883;朱马尔;83;295;0
6884;凯克;86;326;0
6885;科恩科恩;73;303;0
6886;孔;64;323;0
6887;克ướu;62;325;0
搜索HọKhướu返回this Wikipedia page about Họ Khướu。你知道吗
我认为可以肯定这是HTML编码的越南语文本。要将其转换为Unicode,可以使用html.unescape:
更新
上面发布的文本只是原始文本,每页有一个额外的换行符。它是SO的markdown渲染器,它将转义序列转换为相应的glyph。你知道吗
有趣的是这句话:
无法呈现,因为HTML实体未正确终止。
html.unescape
另一方面,将转换字符。显然,html.unescape
比SO的markdown渲染器更宽容。你知道吗以下任一行:
退货:
@PanagiotisKanavos正确地猜测
html.unescape
能够用unicode字符替换xml char引用。最困难的部分是,一些ref以其终止分号(;
)正确结束,而其他ref则不是。在后一种情况下,如果一个实体后跟分号分隔符,则该分隔符将被转换吃掉,并移动以下字段。你知道吗因此,唯一可靠的方法是:
;
分隔符将文件作为CSV文件逐行处理如果要转换文件,可以执行以下操作:
如果只想构建从字段0到字段2的映射:
相关问题 更多 >
编程相关推荐