如何在unicodes的帮助下从给定的字符串中删除梵文

2022-09-28 20:15:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我想编写一个python代码,可以从给定的字符串中提取天成文书文本,但我不知道如何使用Unicode来实现这一点。
我的意见将以这种形式提出

Translate 'अंक'  
36  अ       [V]  
36  ं       [n]  
57  ं  (क [N]  
36  क [kV]  
---  
(hi)'VNk(en)  

我只想要天成文书,而不是数字或英文字母。
我的输出应该是这样的
अंकअंं(क

我试过这个密码

import codecs

file = codecs.open("C:/Users/prince/Desktop/hindi.txt",mode = "r", encoding = "utf-8")
file_dic = codecs.open("C:/Users/prince/Desktop/dic.txt",mode = "w", encoding = "utf-8")
for i in range (0, 330):
    u = file.read()
    if (u[i] >= 0900) && (u[i]<= 097F):
        file_dic.write(u)
        file_dic.write('  ')

Tags: 字符串代码txtmodeopenusersutfencodingfilewritedesktopcodecsdicprince文书
1条回答
网友
1楼 ·

正则表达式将把梵文文本保存在一起。您的示例将打印每个字符之间的空格。下面还添加了Unicode格式的天成文书扩展范围:

#!python3
#coding:utf8

import re

text = '''\
Translate 'अंक'  
36  अ       [V]  
36  ं       [n]  
57  ं  (क [N]  
36  क [kV]
 -  
(hi)'VNk(en)
'''

print(' '.join(re.findall(r'[\u0900-\u097f\ua8e0-\ua8ff]+',text)))

输出:

अंक अ ं ं क क

写入示例中的文件:

import re

with open("C:/Users/prince/Desktop/hindi.txt",mode = "r", encoding = "utf-8") as file:
    text = file.read()
with open("C:/Users/prince/Desktop/dic.txt",mode = "w", encoding = "utf-8") as file_dic:
    file_dic.write(' '.join(re.findall(r'[\u0900-\u097f\ua8e0-\ua8ff]+',text)))

热门问题