Comment puis-je stocker et récupérer le numéro 2 ** 10000 dans un fichier binaire en python sans le convertir en chaîne? Peut-il être stocké comme 10 000 bits?Comment stocker un int arbitrairement long dans un fichier binaire en python?
Répondre
Le module pickle intégré peut le faire si vous passez dans la version 2 du protocole (« nouveau protocole binaire »):
import pickle
pickle.dumps(2**10000, 2)
qui retourne une chaîne de 1259 octets. Bien sûr, vous voudrez l'écrire normalement dans un fichier, alors utilisez pickle.dump(2**10000, file, 2)
Je ne sais pas si vous demandez en général comment stocker de grands nombres entiers dans un fichier binaire ou si le nombre 2 ** 10000 est significatif. Si c'est important alors utiliser plus d'un kilo-octet pour le stocker est évidemment très inutile (je peux l'écrire en 8 caractères!)
Je vais supposer le cas général, mais pour les débutants, vous auriez besoin de 10001 bits pour stocker 2 ** 10000, pas 10000, donc il y a une question sur ce qu'il faut faire sur les 7 bits supplémentaires nécessaires pour remplir les limites d'octets dans le fichier. Je vais juste le stocker en 10008 bits (1251 octets). Cette solution utilise le module bitstring.
from bitstring import BitArray
fout = open('bignumber', 'wb')
a = BitArray(uint=2**10000, length=10008)
a.tofile(fout)
et de le lire en arrière:
the_number = BitArray(filename='bignumber').uint
Cela fait vraiment stocker seulement le nombre et rien d'autre dans le fichier.
- 1. Comment convertir un fichier binaire en un entier long?
- 2. comment générer un int en binaire?
- 3. Traverser arbitrairement un grand arbre binaire en ordre
- 4. Comment rechercher et ajouter à un fichier binaire en python?
- 5. Python: trancher un très gros fichier binaire
- 6. Comment imprimer un int long signé avec printf en C?
- 7. Comment désérialiser un fichier binaire
- 8. Python: containg tuples et Lits long int
- 9. convertir 'int' en 'long' ou accéder à un tableau trop long avec 'long'
- 10. Stocker un tableau binaire dans MySQL
- 11. Python: int à l'élément de flux binaire?
- 12. Comment stocker un IStream dans un fichier via C#?
- 13. long int dans ObjC
- 14. long long vs multiplication int
- 15. Comment lire un fichier binaire en C#?
- 16. Comment écrire dans un fichier binaire en C?
- 17. C# comment écrire un tableau de type long en fichier binaire
- 18. stocker plusieurs valeurs en tant que binaire dans un champ
- 19. Comment fusionner un fichier binaire?
- 20. convertir un fichier binaire dans une liste (python)
- 21. où stocker un nom de fichier journal en python?
- 22. convertir un octet en binaire
- 23. 'long long int' est interprété comme 'long int'. Comment puis-je contourner cela?
- 24. Convertir un script python en exécutable binaire
- 25. Comment stocker un fichier zip dans MySQL?
- 26. Lecture dans un fichier binaire dans haskell
- 27. Différence entre long et int en C#?
- 28. Ruby: exécute un fichier binaire en mémoire?
- 29. Comment convertir un sqlite3_int64 en un long?
- 30. Combiner int et octet en long
Dans mon cas, je stocke exactement le même nombre de bits à chaque fois, donc la prochaine fois que je regarde le code je vais vérifier si c'est plus rapide merci. – Mark