我需要在 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))