Маленький Python ord () скрипт - PullRequest
0 голосов
/ 04 мая 2020

У меня есть текстовый файл с китайским символом [x3400-9FFF] в начале каждой строки. Я хотел бы заменить его кодом в десятичном (не шестнадцатеричном) коде, не затрагивая остальную часть файла, которая является ASCII.

Это должно быть очень просто, используя функцию ord () в Python , правильно? Я просто не знаю никаких Python. Вот что я написал:

import sublime
import sublime_plugin

#converts Chinese to decimal

class HanCommand(sublime_plugin.TextCommand):
    def replaceHanzi(self, edit, text):
        return re.sub(r'([\x3400-\x9FFF])', ord())
    def run(self, edit):
        self.replaceHanzi(edit, text)

1 Ответ

0 голосов
/ 04 мая 2020

попробуйте использовать функцию replace():

s = "א aaaaabbb" 
s = s.replace(u"א", str(ord(u"א")))
print(s)

вывод:

1488 aaaaabbb

1488 - это значение Unicode этой буквы в базе 10.

также обратите внимание, что в

def replaceHanzi(self, edit, text): return re.sub(r'([\x3400-\x9FFF])', ord()) вы не используете edit и text. Вы должны использовать их следующим образом:

def replaceHanzi(self, edit, text):
    return text.replace(edit, str(ord(edit)))
...