zap*_*lec 27 python file-io byte
我正在尝试逐字节读取文件,但我不知道该怎么做.我试着这样做:
file = open(filename, 'rb')
while 1:
byte = file.read(8)
# Do something...
Run Code Online (Sandbox Code Playgroud)
那么这会使变量字节在每个循环开始时包含8个下一位吗?这些字节究竟是什么并不重要.唯一重要的是我需要读取8位堆栈中的文件.
编辑:
此外,我在列表中收集这些字节,我想打印它们,以便它们不打印为ASCII字符,但作为原始字节,即当我打印该bytelist时,它将结果显示为
['10010101', '00011100', .... ]
Run Code Online (Sandbox Code Playgroud)
Sco*_*ths 18
要回答问题的第二部分,要转换为二进制文件,您可以使用格式字符串和ord函数:
>>> byte = 'a'
>>> '{0:08b}'.format(ord(byte))
'01100001'
Run Code Online (Sandbox Code Playgroud)
请注意,格式填充正确的前导零数,这似乎是您的要求.此方法需要Python 2.6或更高版本.
ken*_*ytm 15
您显示的代码将读取8 个字节.你可以用
with open(filename, 'rb') as f:
while 1:
byte_s = f.read(1)
if not byte_s:
break
byte = byte_s[0]
...
Run Code Online (Sandbox Code Playgroud)