將字符串「0」和「1」寫入文件如果我有字符串「0」和「1」,如何將它們寫入文件中的方式是每個字符只需要一位?如何使用位
Q
如何使用位
-1
A
回答
0
據我所知,您無法將單個位寫入文件,但您可以使用bytearray寫入字節。此外,表示字符串不同於表示整數,你確定你想要一個字符串嗎?
0
可以位轉換爲8位串(比特用零填充,以形成完整的字節,如果必要的話):
>>> bits = "1000001"
>>> int2bytes(int(bits, 2))
'A'
如果比特數是被8整除則每個"0"
,"1"
在輸入轉換爲結果中的一位。否則,每個輸入比特需要每比特((n + 7) // 8) * 8/(1.*n)
個比特(對於大的n
只略微大於1個比特),例如,如果比特數目n=1001
則比率是〜1.007
。
前導零被遺忘。如果您始終在位"1"
前加上位,並保存並刪除位,則可以保留它們。
要位保存到一個文件:
with open(filename, 'wb') as file: # open in binary mode
file.write(int2bytes(int(bits, 2)))
其中int2bytes()
:
import binascii
def int2bytes(i):
hex_string = '%x' % i
n = len(hex_string)
return binascii.unhexlify(hex_string.zfill(n + (n & 1)))
相關問題
- 1. 如何使用按位添加位?
- 2. 如何使用佔位符
- 3. 如何使用個人位?
- 4. 如何使用位數組
- 5. C++ - 如何使用位域
- 6. 我如何使用mysql位使用DBIx
- 7. 如何使用virtualenv在Windows中使用32位和64位Python?
- 8. 如何使復位
- 9. 如何使用64位調用門
- 10. 如何在64位應用程序中使用win 32位dll
- 11. 如何在Windows 64位中使用python調用32位exes?
- 12. 如何使用從腳本位置
- 13. 如何使用4位數字
- 14. 如何使用NME和Haxe定位HTML5?
- 15. 如何使用LinearLayout定位圖像?
- 16. 如何在Yii2中按位使用
- 17. 如何在mysql中使用位標誌
- 18. 如何使用Eclipse編譯32位
- 19. 如何在CSS中使用位置?
- 20. 如何使用NAnt定位.Net 4.0 Beta?
- 21. 如何使用outStream.write(msgBuffer)寫入8位;
- 22. 如何使用LatLng值檢查位置?
- 23. 如何使用的位操作
- 24. 如何使用參數更改4位?
- 25. 如何使用位圖繪製路徑?
- 26. 如何在R中使用位集?
- 27. 如何提取使用到位桶-API
- 28. Android:如何使用大量的位圖?
- 29. 如何使用GPS確定位置?
- 30. 如何在hadoop中使用位串?
我要實現Huffmman compresion代碼,並以壓縮我需要的文件,每個字符只需要一點。 – victor
您只能使用一個位來表示2個字符,一個位的唯一可能值是0或1.所以您絕對不能將非常有趣的字符表示爲位。 – jgritty
這就是我想要的,知道如何使用文本中的一個位來編寫字符「0」和「1」。 – victor