读取文件,Python

读取文件,Python,python,python-3.x,Python,Python 3.x,我不明白为什么输出不同。这一点是相同的。为什么通过变量指定数据量会产生这样的结果? 谢谢你的关注 with open('/Users/tt/Desktop/words.py', 'r') as readings: readings.read(10) print(readings) 'I do know!' <_io.TextIOWrapper name='/Users/tt/Desktop/words.py' mode='r' encoding='UTF-8'> with ope

我不明白为什么输出不同。这一点是相同的。为什么通过变量指定数据量会产生这样的结果? 谢谢你的关注

with open('/Users/tt/Desktop/words.py', 'r') as readings:
readings.read(10)
print(readings)

'I do know!'
<_io.TextIOWrapper name='/Users/tt/Desktop/words.py' mode='r' encoding='UTF-8'>

with open('/Users/tt/Desktop/words.py', 'r') as readings:
tensymbols = readings.read(10)
print(tensymbols)

I do know!

输出不同,因为Reads是类型为_io.TextIOWrapper的对象。所以当你打印读数时,你实际上是在打印一个对象

但是,当您将其分配给变量时,它将转换为字符串。因此,您打印的是字符串而不是对象


因此,两种情况下的输出都不同

输出不同,因为读数是_io.TextIOWrapper类型的对象。所以当你打印读数时,你实际上是在打印一个对象

但是,当您将其分配给变量时,它将转换为字符串。因此,您打印的是字符串而不是对象


因此,这两种情况下的输出都是不同的

它有助于发布实际的shell会话,以便我们可以可视化正在发生的事情。如果这只是作为python脚本运行,我们永远不会看到我所知道的第一个!因为它没有分配给变量,所以会被丢弃

在第一种情况下,读取并丢弃文件的前10个字符。事实证明,如果函数调用的结果不是空的,那么pythonshell和大多数IDE将显示函数调用的结果,这就是您在屏幕上看到的结果

>>> with open('words.py') as readings:
...     readings.read(10)
... 
'I do know!'
>>> print(readings)
<_io.TextIOWrapper name='words.py' mode='r' encoding='UTF-8'>

请注意,如果您像第一次一样打印读数,它就像第一次一样是一个io包装器。

它有助于发布您的实际shell会话,以便我们可以可视化正在发生的事情。如果这只是作为python脚本运行,我们永远不会看到我所知道的第一个!因为它没有分配给变量,所以会被丢弃

在第一种情况下,读取并丢弃文件的前10个字符。事实证明,如果函数调用的结果不是空的,那么pythonshell和大多数IDE将显示函数调用的结果,这就是您在屏幕上看到的结果

>>> with open('words.py') as readings:
...     readings.read(10)
... 
'I do know!'
>>> print(readings)
<_io.TextIOWrapper name='words.py' mode='r' encoding='UTF-8'>

请注意,如果您第一次打印读数,它就像第一次打印一样是一个io包装器。

这看起来像是从Python的REPL>>交互式提示中运行的

第一次尝试返回您作为带引号的Python字符串读取的字符串。然后要求Python打印打开的文件句柄,因为文件句柄没有合理的字符串表示形式,所以P Ython打印其repr字符串


第二次尝试只是要求Python打印字符串;因为这是一个字符串,不必为了产生人类可读的表示而被破坏,所以它是逐字打印的。

这看起来像是一个“从Python的REPL>>交互式提示中运行此字符串的家长”

第一次尝试返回您作为带引号的Python字符串读取的字符串。然后要求Python打印打开的文件句柄,因为文件句柄没有合理的字符串表示形式,所以P Ython打印其repr字符串


第二次尝试只是要求Python打印字符串;因为这是一个字符串,不必为了产生一个人类可读的表示而被破坏,所以它是逐字打印的。

您的IDE打印您从redings.read10获得的内容-然后您打印提供给您的文件句柄。存储read10的返回值并打印变量将为您提供从中读取的内容。请检查您的代码,以便代码不会出现语法错误。在网站的桌面上,您可以用实际工作代码的副本/粘贴替换您试图发布的tae代码;然后选择粘贴的hode并键入ctrl-K以正确格式化。IDE将打印从redings.read10获得的内容-然后打印提供给您的文件句柄。存储read10的返回值并打印变量将为您提供从中读取的内容。请检查您的代码,以便代码不会出现语法错误。在网站的桌面上,您可以用实际工作代码的副本/粘贴替换您试图发布的tae代码;然后选择粘贴的hode并键入ctrl-K以正确设置其格式。