如何在python的二進制文件中存儲和檢索數字2 ** 10000而不將其轉換爲字符串?它可以存儲爲10,000位嗎?如何將任意長的int存儲到Python中的二進制文件?
2
A
回答
3
內置pickle模塊可以做到這一點,如果你在協議版本通過2(「新的二進制協議」):
import pickle
pickle.dumps(2**10000, 2)
返回的1259個字節的字符串。當然,你想寫它到一個正常的文件,所以使用pickle.dump(2**10000, file, 2)
2
我不清楚如果你一般問如何在二進制文件中存儲大整數或如果數字2 ** 10000意義重大。如果它是有意義的,那麼使用超過千字節來存儲它顯然是非常浪費的(我可以寫成8個字符!)
我假設一般情況下,但對於初學者,你需要10001位來存儲2 ** 10000,而不是10000,所以有一個問題是如何處理填充文件中字節邊界所需的額外7位。我只是將它存儲在10008位(1251字節)中。該解決方案使用bitstring模塊。
from bitstring import BitArray
fout = open('bignumber', 'wb')
a = BitArray(uint=2**10000, length=10008)
a.tofile(fout)
,並讀回:
the_number = BitArray(filename='bignumber').uint
這確實只是存儲的數量和文件中沒有別的。
相關問題
- 1. Python:將int寫入二進制文件
- 2. 如何使用python加密/解密任意長度的二進制文件?
- 3. TFS如何存儲二進制文件
- 4. 如何將二進制文件從android存儲到mysql
- 5. C++如何將整數存儲到二進制文件?
- 6. 將二進制值存儲到unsigned int數組中
- 7. 將二進制存儲到BLOB中
- 8. 如何將二進制文件(0和1)存儲/加載到內存中?
- 9. SQL Server的二進制文件存儲
- 10. 將數值從二進制文件存儲到數組中 - C++
- 11. 二進制/ Int文件讀取和陣列存儲
- 12. 如何通過TableServiceEntity將二進制文件保存到Azure表存儲?
- 13. 的Python:二進制文件
- 14. 二進制文件:如何將.csv保存爲二進制文件.dat
- 15. Python將二進制字符串轉換爲二進制int
- 16. Python 3,將存儲二進制數據的字符串轉換爲Int
- 17. 將二進制文件存儲到hbase與豬
- 18. 將「結構」數據存儲到二進制文件
- 19. PHP - Doctrine存儲文件(數據庫中的二進制文件)
- 20. Python將long int作爲二進制值寫入文件
- 21. 從二進制文件中讀取對象的任意數量
- 22. 將二進制文件存儲到C#中的Oracle Blob字段中#
- 23. 如何尋找並追加到Python中的二進制文件?
- 24. 如何在Kubernetes ConfigMap中存儲二進制文件?
- 25. 如何在二進制文件中存儲有序整數集?
- 26. 如何在節點js中存儲大型二進制文件?
- 27. 如何在結構中存儲二進制文件數據?
- 28. Microsoft Word二進制文件如何存儲在Hive中?
- 29. Python中的二進制文件的圖
- 30. 將int保存爲二進制文件c
在我的情況下,我每次都存儲完全相同的位數,所以下次我查看代碼時,我會檢查這是否更快,謝謝。 – Mark 2010-04-25 20:15:06