阅读文件内容

时间:2013-06-26 02:49:22

标签: python

我正在尝试从文件中读取文本并显示它,但它不起作用。我得到一个空白的结果,或者我得到

<_io.TextIOWrapper name='/Users/student/Desktop/Harry.txt' mode='r' encoding='US-ASCII'>

代码

text1 = open('/Users/student/Desktop/Harry.txt', 'r')
text1.read()

我试过了

text1 = open('/Users/student/Desktop/Harry.txt', 'r')
text1.read()
print(text1) 

4 个答案:

答案 0 :(得分:4)

text.read()的返回值分配给变量并打印

text1 = open('/Users/student/Desktop/Harry.txt', 'r')
x = text1.read()
print(x) 

答案 1 :(得分:2)

你试过这个吗?

text1 = open('/Users/student/Desktop/Harry.txt', 'r')
data  = text1.read()
print data
text1.close()

答案 2 :(得分:1)

对内置open的调用结果是一个包装文件的Python对象,而不仅仅是文件的内容。这就是您为名称text1指定的内容。

文件对象上的read方法返回文件中一些字节数的字符串。如果你只是调用text1.read(),那将返回一个包含文件中所有字符的字符串对象。

您可以直接从read语句中打印文件的内容,如下所示:

print(text1.read()

或者如果你想对文件内容做任何其他事情,如果将它们保存到局部变量,然后打印它们,你的形状会更好:

text_from_file = text1.read()
print(text_from_file)

这是因为text1.read()将读取到文件的末尾,之后read()的后续调用将仅返回空字符串,除非您告诉文件对象从头开始再次启动该文件(通过调用text1.seek(0))。

您在第二个示例print(text1)中进行的调用打印了名为text1的对象的表示形式。在Python 2中,它看起来像这样:

Python 2.7.4 (v2.7.4:026ee0057e2d, Apr  6 2013, 10:15:50) 
>>> foo = open('.bash_history', 'r')
>>> print(foo)
<open file '.bash_history', mode 'r' at 0xbb440>
>>> 

在Python3中,对象不同,因此表示形式不同:

Python 3.3.1 (v3.3.1:d9893d13c628, Apr  6 2013, 10:32:10)
>>> foo = open('.bash_history', 'r')
>>> print(foo)
<_io.TextIOWrapper name='.bash_history' mode='r' encoding='UTF-8'>
>>> 

无论哪种方式,你都要求它打印Python对象的表示,而不是对象为你提供Pythonic访问权限的文件内容。

答案 3 :(得分:0)

尝试print text1.read()让它发挥作用