在下面的文档中,我学习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>我在用遮阳篷。
什么不是我的程序显示(就像在教学中)文本在我的文件?
发布于 2014-02-01 14:12:10
您正在很好地读取文件,但是正在打印文件对象,而不是文件内容。
使用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()返回的内容。
发布于 2014-02-01 14:12:21
试试这个:
f = open('C:\Users\PC\Desktop\plik.txt', 'r+b')
print f.read()它将打印从f中读取的内容,而print f将打印有关文件对象对象f的信息。
发布于 2014-02-01 14:14:36
open返回文件的句柄。将这个句柄分配给f。print 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()。
https://stackoverflow.com/questions/21499003
复制相似问题