[textTools] add 'pad' function to pad strings with null bytes

This commit is contained in:
Cosimo Lupo 2015-08-03 13:29:23 +01:00
parent d50af59a52
commit 98e47a8746

View File

@ -74,3 +74,28 @@ def caselessSort(alist):
return sorted(alist, key=lambda a: (a.lower(), a)) return sorted(alist, key=lambda a: (a.lower(), a))
except TypeError: except TypeError:
return sorted(alist) return sorted(alist)
def pad(data, size):
r""" Pad byte string 'data' with null bytes until its length is a
multiple of 'size'.
>>> len(pad(b'abcd', 4))
4
>>> len(pad(b'abcde', 2))
6
>>> len(pad(b'abcde', 4))
8
>>> pad(b'abcdef', 4) == b'abcdef\x00\x00'
True
"""
data = tobytes(data)
if size > 1:
while len(data) % size != 0:
data += b"\0"
return data
if __name__ == "__main__":
import doctest
sys.exit(doctest.testmod().failed)