Ajouter des octets de la chaîne?

J'ai un fichier que j'ai ouvert en Python que je suis en train d'écrire à un autre fichier de sortie. J'ai besoin qu'elle soit un multiple de 16 ans, en taille, c'est ce que j'ai imaginé:

 with open(input_file, 'rb') as infile:
     with open(output_file, 'wb') as outfile:
         while True:
             input_chunk = infile.read(64)

             if len(input_chunk) == 0:
                 break
             elif len(input_chunk) % 16 > 0:
                 input_chunk.extend([0 for i in range(len(input_chunk) % 16)])

             output_file.write(input_chunk)

Malheureusement, il ne réussit pas à ajouter des zéros avec:

AttributeError: 'str' object has no attribute 'extend'

Tout d'abord, pourquoi faire j'ai une chaîne de caractères ici, plutôt qu'un tableau d'octets? Je suis en train de lire le fichier binaire en mode binaire.

Deuxième, si je fais face à une chaîne de caractères, comment puis-je écrire un nombre d'octets avec la valeur 0 à la fin de cette chaîne?

les chaînes de caractères sont des objets immuables.
Peut-être input_chunk = input_chunk + '\0' * (len(input_chunk) % 16)
Est-il possible que je peux lire un fichier sous la forme de tableaux d'octets?
Je pense que le problème est sur la prolonger l'appel.
Êtes-vous à l'aide de Python 2 ou 3?

OriginalL'auteur Naftuli Kay | 2013-02-19