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

时间:2014-02-01 14:06:19

标签: python file text methods

我正在学习python遵循此文档:

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

我正在尝试读取名为“plik.txt”的文件。它由两行短文组成,如:

long time ago 
blah blah...

所以我使用这段代码:

 f = open('C:\Users\PC\Desktop\plik.txt', 'r+b')
 print f
 f.read()

然而,我得到的只是消息

<open file 'C:\Users\PC\Desktop\plik.txt', mode 'r+b' at 0x053EC7B0>

我正在使用树冠。

我的程序在我的文件中显示的内容(就像在说明中一样)是什么?

3 个答案:

答案 0 :(得分:2)

您正在阅读该文件,但正在打印文件对象,而不是文件内容。

改为使用print f.read()

f = open('C:\Users\PC\Desktop\plik.txt', 'r+b')
print f.read()

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

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

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

答案 1 :(得分:0)

试试这个:

f = open('C:\Users\PC\Desktop\plik.txt', 'r+b')
print f.read()

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

答案 2 :(得分:0)

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

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

使用以下代码

运行python filename.py
f = open('C:\Users\PC\Desktop\plik.txt', 'r+b')
print f
f.read()

只会打印print f

的结果

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

>>> 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()。