Python命令无法读取.txt文件

3
尝试按照指南操作,但结果不如预期。我确定自己漏了些什么。

http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files

file = open("C:/Test.txt", "r");
print file
file.read()
file.read()
file.read()
file.read()
file.read()
file.read()

使用readline()方法会得到相同的结果。
file.readline() 

我得到的输出是:
<open file 'C:/Test.txt', mode 'r' at 0x012A5A18>

有什么建议可能是错了吗?

6
为什么它不能按照预期工作?这与教程中的输出 完全相同 - SilentGhost
它没有显示代码应该显示的内容,如下所述,我需要在print语句中包装file.read()行才能在控制台上显示。 - delete
4个回答

7

没有问题。你正在打印一个对象 file

试试这个:

file = open('C:/Test.txt', 'r')
for line in file.readlines(): print line,

1
啊,我对一个对象执行了.ToString(),而不是对象的内容。谢谢! :) 当使用这个for循环迭代文件内容时,每行内容之间都会有一个空格,这正常吗?文件中的行没有空行。 - delete
1
是的,这是正常的,因为“print”默认会自动插入一个换行符。您可以通过在“print”语句后添加逗号来解决此问题,例如像Frank已经做的那样:print line, - Chinmay Kanchi
4
为什么不直接使用 for line in file: ... - user395760

2

print file 调用了 file 对象的 __repr__() 函数,此函数定义返回的内容就是被打印出来的内容。如果要打印文件的内容,你需要将其读取到一个变量中(或者直接传递给 print)。同时,file 是 Python 中的一个内置类型,如果使用 file 作为变量名,会掩盖内置类型,这几乎不是你想要的结果。正确的做法如下:

infile = open('C:/test.txt', 'r')
print infile.read()
infile.close()

或者

infile = open('C:/test.txt', 'r')
file_contents = infile.read()
print file_contents
infile.close()

不知道文件是保留关键字。点赞!感谢帮助。 - delete
3
这并不是保留关键字,而是内置类型。区别在于你无法将变量命名为与关键字相同的名称,但你可以将其命名为与现有(内置或非内置)类型相同的名称。这样做会使得原有类型无法访问。有时Python允许你做一些疯狂的事情;例如:for = 10是无效的,因为for是一个关键字,但是int = 10是完全有效的。它只是意味着你无法在该上下文中再使用int类型。 - Chinmay Kanchi

1
print file.read()

0

你必须先读取文件!

file = open("C:/Test.txt", "r")
foo = file.read()
print(foo)

你也可以写成:

file = open("C:/Test.txt", "r").read()
print(file)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接