Spelling fixes to docs, docstrings, and comments (GH-6374)

(cherry picked from commit 61f82e0e337f971da57f8f513abfe693edf95aa5)

Co-authored-by: Ville Skyttä <ville.skytta@iki.fi>
diff --git a/Python/fileutils.c b/Python/fileutils.c
index 32aeea4..35869c8 100644
--- a/Python/fileutils.c
+++ b/Python/fileutils.c
@@ -431,7 +431,7 @@
    can be decoded as a surrogate character, escape the bytes using the
    surrogateescape error handler instead of decoding them.
 
-   On sucess, return 0 and write the newly allocated wide character string into
+   On success, return 0 and write the newly allocated wide character string into
    *wstr (use PyMem_RawFree() to free the memory). If wlen is not NULL, write
    the number of wide characters excluding the null character into *wlen.
 
diff --git a/Python/hamt.c b/Python/hamt.c
index 53a8572..5217122 100644
--- a/Python/hamt.c
+++ b/Python/hamt.c
@@ -39,7 +39,7 @@
     0b00_00000_10010_11101_00101_01011_10000 = 19830128
           (6)   (5)   (4)   (3)   (2)   (1)
 
-Each block of 5 bits represents a number betwen 0 and 31.  So if we have
+Each block of 5 bits represents a number between 0 and 31.  So if we have
 a tree that consists of nodes, each of which is an array of 32 pointers,
 those 5-bit blocks will encode a position on a single tree level.
 
@@ -832,7 +832,7 @@
                pairs.
 
                Small hamt objects (<30 keys) usually don't have any
-               Array nodes at all.  Betwen ~30 and ~400 keys hamt
+               Array nodes at all.  Between ~30 and ~400 keys hamt
                objects usually have one Array node, and usually it's
                a root node.
             */