Python学习者。所以请原谅。 我关注:http://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files
我想读一个文件;这是我的档案:
# cat test
line1 word1
line2 word2
line3 word3
line4 word4
这里是我的代码:
>>> f = open ('test')
>>> for line in f:
... print f
...
<open file 'test', mode 'r' at 0xb7729180>
<open file 'test', mode 'r' at 0xb7729180>
<open file 'test', mode 'r' at 0xb7729180>
<open file 'test', mode 'r' at 0xb7729180>
我如何以及为何获得高于输出?我希望它每行打印一行。 我在这里想念的是什么看看上面提到的链接,我的语法似乎没问题,但输出不是
感谢。
答案 0 :(得分:3)
在迭代过程中,您正在打印f
而不是line
变量。
>>> f = open ('test')
>>> for line in f:
... print line
答案 1 :(得分:2)
您正在打印文件句柄,将 打印f 替换为 打印行 :
f = open ('test')
for line in f:
print line
答案 2 :(得分:2)
for line in open('test')
print line
答案 3 :(得分:0)
您必须使用readline函数读取行。然后它将每行转换为列表值。那是你可以做你的声明。
答案 4 :(得分:0)
for line in f:
这意味着'遍历f的内容,将每个项目分配给名为'line'的变量。不是相反的。 f不会改变..这是你从中获取数据的内容,而不是你分配给它的变量。
那就是说,我看到的另一个答案来自名字以'D'开头的人......是正确的:你想要print (line)
,而不是print(f)
。我用()编写它是因为它是一个很好的习惯,它使你的代码兼容Python 2.x和Python 3.x.