Py_ssize_t requires "n" format, this fixes most of the 64-bit only failures.
diff --git a/Modules/_fileio.c b/Modules/_fileio.c
index 60ca8c4..abd5d19 100644
--- a/Modules/_fileio.c
+++ b/Modules/_fileio.c
@@ -438,7 +438,7 @@
 	if (!self->readable)
 		return err_mode("reading");
 
-	if (!PyArg_ParseTuple(args, "|i", &size))
+	if (!PyArg_ParseTuple(args, "|n", &size))
 		return NULL;
 
         if (size < 0) {