首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.read()方法不读取我的文件

.read()方法不读取我的文件
EN

Stack Overflow用户
提问于 2014-02-01 14:06:19
回答 3查看 1.2K关注 0票数 0

在下面的文档中,我学习python:

http://docs.python.org/2/tutorial/inputoutput.html#methods-of-file-objects

我正试着读我的文件"plik.txt“。它由两行简短的文本组成,如下:

代码语言:javascript
复制
long time ago 
blah blah...

所以我使用这个代码:

代码语言:javascript
复制
 f = open('C:\Users\PC\Desktop\plik.txt', 'r+b')
 print f
 f.read()

然而,我得到的只是信息

代码语言:javascript
复制
<open file 'C:\Users\PC\Desktop\plik.txt', mode 'r+b' at 0x053EC7B0>

我在用遮阳篷。

什么不是我的程序显示(就像在教学中)文本在我的文件?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-01 14:12:10

您正在很好地读取文件,但是正在打印文件对象,而不是文件内容。

使用print f.read()代替:

代码语言:javascript
复制
f = open('C:\Users\PC\Desktop\plik.txt', 'r+b')
print f.read()

.read()方法返回文件内容,但您完全忽略了它们。

Python教程还假设您在交互式Python解释器中运行代码,该解释器会自动回显任何不导致None的表达式的返回值。因此,调用f.read()包括您所做的一切的自动print repr(returnvalue)

您必须直接运行代码,而不是在交互式解释器中运行,在该解释器中不存在自动回显,除非显式打印,否则无法查看f.read()返回的内容。

票数 2
EN

Stack Overflow用户

发布于 2014-02-01 14:12:21

试试这个:

代码语言:javascript
复制
f = open('C:\Users\PC\Desktop\plik.txt', 'r+b')
print f.read()

它将打印从f中读取的内容,而print f将打印有关文件对象对象f的信息。

票数 0
EN

Stack Overflow用户

发布于 2014-02-01 14:14:36

open返回文件的句柄。将这个句柄分配给fprint f打印句柄(带有文件名、模式等)您应该打印f.read()的结果。

如果将以下代码放入文件并使用python filename.py运行它,或者在python解释器中输入代码,则会产生不同的效果:

使用以下代码运行python filename.py

代码语言:javascript
复制
f = open('C:\Users\PC\Desktop\plik.txt', 'r+b')
print f
f.read()

将只打印print f的结果

如果在python解释器中键入相同的代码

代码语言:javascript
复制
>>> f = open('C:\Users\PC\Desktop\plik.txt', 'r+b')
>>> print f
<open file 'C:\Users\PC\Desktop\plik.txt', mode 'r+b' at 0xb7382020>
>>> f.read()
'the content of file C:\Users\PC\Desktop\plik.txt ...'

输入后将打印结果f.read()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21499003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档