2017-10-01 1 views

Répondre

0

Un fichier npy est un en-tête contenant le type de données (métadonnées) et la forme, suivi par les données elles-mêmes.

L'en-tête se termine par un caractère '\n' (nouvelle ligne). Donc, ouvrez votre premier fichier en mode ajout, puis ouvrez le deuxième fichier en mode lecture, ignorez l'en-tête par readline(), puis copiez les morceaux (en utilisant read(size)) du second fichier au premier.

Il ne reste qu'une chose: mettre à jour le champ de forme (longueur) dans l'en-tête. Et ici, il devient un peu difficile, car si les deux fichiers avaient par exemple les formes (700,) et (400,), la nouvelle forme doit être (1300,) mais vous ne pouvez pas avoir d'espace dans l'en-tête pour cela. Cela dépend du nombre de caractères de pad présents dans l'en-tête d'origine - parfois vous aurez de l'espace et parfois vous ne le ferez pas. S'il n'y a pas d'espace, vous devrez écrire un nouvel en-tête dans un nouveau fichier, puis copier les données à partir des deux fichiers source. Pourtant, cela ne prendra pas beaucoup de mémoire ou de temps, juste un peu d'espace disque supplémentaire.

Vous pouvez voir le code qui lit et écrit des fichiers npy ici: https://github.com/numpy/numpy/blob/master/numpy/lib/format.py - il y a quelques fonctions non documentées que vous pouvez trouver utiles dans votre quête.

+0

Bonne explication! :) Aussi, il serait utile si vous partagez le code! Merci! –

+0

Je ne peux pas partager le code parce que je ne l'ai pas. Vous aurez besoin de l'écrire. –