Я пытаюсь сгенерировать все символы Юникода 16.0 в файле и все символы Юникода 15.1 в другом файле и отобразить в новом файле добавленные символы Юникода 16.0.
Я попробовал этот код, но это не то, что я ищу, потому что могут быть новые смайлы или другие символы, которые невозможно распечатать в Юникоде 15.1, но можно распечатать в Юникоде 16.0, и я не думаю, что я правильно сгенерировал символы. Пожалуйста, ознакомьтесь с исходным кодом, спасибо.
import os
file_15_1 = "unicode_15_1.txt"
file_16_0 = "unicode_16_0.txt"
file_new_in_16_0 = "new_in_16_0.txt"
unicode_15_1_end = 149813
unicode_16_0_end = 154998
def is_visible(char):
return char.isprintable() and not char.isspace() and char != ""
def generate_unicode_file(start, end, filename):
with open(filename, "w", encoding="utf-8") as f:
for codepoint in range(start, end + 1):
try:
f.write(chr(codepoint) + "\n")
except ValueError:
continue
generate_unicode_file(0, unicode_15_1_end, file_15_1)
generate_unicode_file(0, unicode_16_0_end, file_16_0)
def find_new_characters(file1, file2, output_file):
with open(file1, "r", encoding="utf-8") as f1, open(file2, "r", encoding="utf-8") as f2:
chars_15_1 = set(f1.read().splitlines())
chars_16_0 = set(f2.read().splitlines())
new_in_16_0 = chars_16_0 - chars_15_1 # No
with open(output_file, "w", encoding="utf-8") as f_out:
for char in sorted(new_in_16_0):
if is_visible(char):
f_out.write(char + "\n")
find_new_characters(file_15_1, file_16_0, file_new_in_16_0)
print(f"- {file_15_1}")
print(f"- {file_16_0}")
print(f"- {file_new_in_16_0}")```
Подробнее здесь: https://stackoverflow.com/questions/793 ... characters
Python: символы Юникода 16.0 и Юникода 15.1. ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как заменить символы Юникода турецкими символами в текстовом файле с помощью Python
Anonymous » » в форуме Python - 0 Ответы
- 134 Просмотры
-
Последнее сообщение Anonymous
-