Вы захотите взглянуть на num2words .
Вам нужно будет создать регулярное выражение, чтобы поймать числа, которые вы хотите заменить, и передать их в num2words
. На основании предоставленного примера вам также может понадобиться флаг ordinal
.
import re
from num2words import num2words
# this is just an example NOT ready to use code
text = "My age is 10. I am in my 7th grade."
to_replace = set(re.findall('\d+', text)) # find numbers to replace
longest = sorted(to_replace, key=len, reverse=True) # sort so longest are replaced first
for m in longest:
n = int(m) # convert from string to number
result = num2words(n) # generate text representation
text = re.sub(m, result, text) # substitute in the text
print(text)
, отредактированный для отражения того, что OP хочет перехватить все цифры