为RawIOBase python打开一个文件

为RawIOBase python打开一个文件,python,binary,Python,Binary,我需要为一个函数读入一个文件的二进制文件,从这个链接来看,我应该使用一个RawIOBase对象来读入它。但是我找不到任何关于如何打开文件以与RawIOBase一起使用的地方。现在,我已经尝试将二进制读入字符串 with (open(documentFileName+".bin", "rb")) as binFile: document = binFile.RawIOBase.read() print document 但这会抛出错误AttributeError:“file”对象没有属

我需要为一个函数读入一个文件的二进制文件,从这个链接来看,我应该使用一个RawIOBase对象来读入它。但是我找不到任何关于如何打开文件以与RawIOBase一起使用的地方。现在,我已经尝试将二进制读入字符串

with (open(documentFileName+".bin", "rb")) as binFile:
    document = binFile.RawIOBase.read()

print document
但这会抛出错误AttributeError:“file”对象没有属性“RawIOBase”


因此,在RawIOBase中没有open属性的情况下,如何打开文件以供读取

除非您需要编写自己特有的文件oid类型,否则不要深入研究
io
灌木丛的实现细节!就你而言

with open(documentFileName+".bin", "rb") as binFile:
    document = binFile.read()
会很好的

顺便注意,我已经删除了您使用的多余括号--“没有多余的像素!!!”--但是,尽管很重要!,这是你在这里的目标的一个次要问题

现在,假设Python2,
document
是一个
str
——一个不可变的字节数组。显示
文档
将其显示为字符串可能会让人困惑,但这只是Py2对文本和字节字符串的混淆(在Py3中,返回的类型将是
字节

如果您喜欢(例如)使用
int
s的可变数组,请使用

 theints = map(ord, document)
或者,对于以数字显示的不可变字节数组

 import array
 thearray = array.array('b', document)

好吧,有道理。但我认为我的问题表述错误了,我想把文件的各个位读入二进制字符串。当我用open('filename','rb')打开文件时,我只需返回字符串的ascii表示形式。是否有专门的函数来读取单个字节?我希望,通过编辑来澄清您的困惑(假设您给出的URL中有Python2——最好适当地标记…)。