Конечно (?) Это возможно в Python. Все, что вы будете делать, это преобразовать число base-65 в число base-95 или base-94 и обратно Просто это будет немного медленно, и, как указано в другом ответе, вы не сэкономите много места
Здесь (не проверено) основные строительные блоки:
def ttoi(text, base, letter_values):
"""converts a base-"base" string to an int"""
n = 0
for c in text:
n = n * base + letter_values[c]
return n
def itot(number, base, alphabet, padsize):
"""converts an int into a base-"base" string
The result is left-padded to "padsize" using the zero-value character"""
temp = []
assert number >= 0
while number:
number, digit = divmod(number, base)
temp.append(alphabet[digit])
return max(0, padsize - len(temp)) * alphabet[0] + "".join(reversed(temp))
Определения, например, ваш существующий код base-65:
b65_letter_values = {
'A': 0, 'Z': 25, 'a': 26, 'z': 51, '0': 52, '9': 61,
# etc
}
b65_alphabet = "ABCetcXYZabcetcxyz0123456789.:-"
b65_padsize = 19