Мне нужна была эта функция сегодня, немного обновил принятый ответ для людей с Python> = 3.6:
def human_format(num, precision=2, suffixes=['', 'K', 'M', 'G', 'T', 'P']):
m = sum([abs(num/1000.0**x) >= 1 for x in range(1, len(suffixes))])
return f'{num/1000.0**m:.{precision}f}{suffixes[m]}'
print('the answer is %s' % human_format(7454538)) # prints 'the answer is 7.45M'
Изменить: учитывая комментарии, вы можете изменить на round(num/1000.0)