我需要在 python 中一点一点地读取文件
I need to read a file bit by bit in python
我想要从文件中输出类似 01100011010... 或 [False,False,True,True,False,...] 的输出,然后创建加密文件。
我已经尝试过 byte = file.read(1)
但我不知道如何将其转换为位。
你可以这样读取二进制模式的文件:
with open(r'path\to\file.ext', 'rb') as binary_file:
bits = binary_file.read()
'rb'
选项代表Read Binary
。
对于您要求的输出,您可以这样做:
[print(bit, end='') for bit in bits]
这是列表理解等同于:
for bit in bits:
print(bit, end='')
由于'rb'
给你的是hex
个数字而不是bin
,你可以使用内置函数bin
来解决这个问题:
with open(r'D:\help\help.txt', 'rb') as file:
for char in file.read():
print(bin(char), end='')
假设我们有文本文件text.txt
# Read the content:
with open("text.txt") as file:
content=file.read()
# using join() + bytearray() + format()
# Converting String to binary
res = ''.join(format(i, '08b') for i in bytearray(content, encoding ='utf-8'))
# printing result
print("The string after binary conversion : " + str(res))
我想要从文件中输出类似 01100011010... 或 [False,False,True,True,False,...] 的输出,然后创建加密文件。
我已经尝试过 byte = file.read(1)
但我不知道如何将其转换为位。
你可以这样读取二进制模式的文件:
with open(r'path\to\file.ext', 'rb') as binary_file:
bits = binary_file.read()
'rb'
选项代表Read Binary
。
对于您要求的输出,您可以这样做:
[print(bit, end='') for bit in bits]
这是列表理解等同于:
for bit in bits:
print(bit, end='')
由于'rb'
给你的是hex
个数字而不是bin
,你可以使用内置函数bin
来解决这个问题:
with open(r'D:\help\help.txt', 'rb') as file:
for char in file.read():
print(bin(char), end='')
假设我们有文本文件text.txt
# Read the content:
with open("text.txt") as file:
content=file.read()
# using join() + bytearray() + format()
# Converting String to binary
res = ''.join(format(i, '08b') for i in bytearray(content, encoding ='utf-8'))
# printing result
print("The string after binary conversion : " + str(res))