2015-02-08 77 views
0

在Python中返回.read()类型的技术术语是什么?.read()返回一个流吗?

例如:

x = open('myfile', 'r').read() 
x = stdin.read() 

什么是x简称?它是一个字节流吗?我想创建一个需要x作为输入的函数,并且不知道如何在我的文档字符串中解释它? IE

def parser(stream, ...): 
    """ First argument is ??? type, returned from .read() operations.""" 

我试过谷歌搜索,但大多数结果太jargony。

由于

+0

这取决于你称之为“读”的对象是什么类型。如果你在第一个例子中把它称为一个文件对象,那么可以在文件(https://docs.python.org/2/library/stdtypes.html#file.read)中找到'file .read'。 – BrenBarn 2015-02-08 19:06:43

+0

这个东西没有一个通用的类别?关键是,我想创建一个接受来自任何.read()操作的输入的函数,并且不知道如何直接引用它。 – 2015-02-08 19:07:41

+2

IO对象上的read()通常返回一个字符串或一个字节对象(Python 2中的unicode或str对象),具体取决于您是读取编码数据还是原始数据。 – poke 2015-02-08 19:07:55

回答

0

它可能是unicode字符串或字符串,具体取决于您打开文件的方式以及您的Python版本。

  • 的Python 2:总是返回一个字节串(类型str
  • Python 3中:返回一个Unicode字符串(类型str)除非"b"是在模式,在这种情况下它返回类型bytes
0

https://docs.python.org/2/library/stdtypes.html#bltin-file-objects

file.read([大小])

在读从文件最大小字节(以下如果读取命中EOF获得大小字节之前)。如果size参数为负值或省略,请读取所有数据,直到达到EOF。字节以字符串对象的形式返回。立即遇到EOF时返回空字符串。 (对于某些文件,如ttys,在EOF命中后继续读取是有意义的。)请注意,此方法可能会多次调用基础C函数fread(),以尽可能接近字节大小。还要注意的是,当处于非阻塞模式时,即使没有给出大小参数,也可能返回比请求的数据更少的数据。

什么太jargony约

的字节返回一个字符串对象。

这是一个字符串,包含所有文件的内容。

编辑:亚当,Python通常不是严格键入。任何在类似字符串的对象上工作的东西通常都会带有像字符串一样的方法/属性。

+0

我想我正在推翻它。 – 2015-02-08 19:12:53

相关问题