python中1010的二进制_如何用python把任意文件转换为“1010”样子的文本
感謝 @xavierskip 的評(píng)論!
終于摸出來了。。收獲良多。
用二進(jìn)制形式打開文件后,read()出來的字符串叫做binary string,二進(jìn)制字符串,指的是這串字符串二進(jìn)制層面上和文件完全相同,把它寫入到另一個(gè)二進(jìn)制文件中就等于拷貝了一份。而不是指表現(xiàn)形式上的二進(jìn)制(101010101)。
然后就是把這個(gè)字符串里的每個(gè)字符用ord()轉(zhuǎn)換數(shù)字,再轉(zhuǎn)成二進(jìn)制表現(xiàn)形式的字符串就可以了。要注意的是python的bin()函數(shù)不會(huì)自己補(bǔ)足8位。
好奇一下。。。binary string(二進(jìn)制字符串)是指和它代表的文件在二進(jìn)制層面上內(nèi)容相同的字符串,那1010這種字符串又怎么稱呼呢?
stackoverflow上很多問題似乎都是用1s and 0s來表示。。。有沒有再文藝清新點(diǎn)的表達(dá)方式?。。
鞏固學(xué)習(xí),寫了相互轉(zhuǎn)換的函數(shù):# path參數(shù):要轉(zhuǎn)換的文件的路徑
def convertFileToOneAndZero(path):
f = open(path,'rb')
src = f.read()
print len(src)
result = []
for i in src:
temp = bin(ord(i))[2:]
temp = '0' * (8-len(temp)) + temp
result.append(temp)
return ''.join(result)
# src參數(shù):1010字符串
# path參數(shù):輸出文件的路徑
def convertOneAndZeroToFile(src, path):
result = []
for i in range(0, len(src), 8):
result.append(chr(int(src[i:i+8], 2)))
f = open(path, 'wb')
f.write(''.join(result))
f.close()
總結(jié)
以上是生活随笔為你收集整理的python中1010的二进制_如何用python把任意文件转换为“1010”样子的文本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 全局变量_Javascript
- 下一篇: python导入模块的变量_python