Python中的readlines()函数

时间:2014-01-20 21:32:15

标签: python shell

当我将以下内容键入.py文件(使用版本2,如果这很重要)并运行时,

 f=open('file.txt','r')

 for line in f:

          print line

我的文件'file.txt'的所有行都打印在shell中。

当我在.py文件中输入以下内容并运行时,

 f=open('file.txt','r')

 f.readlines()

我得到一个空输出。如果进入shell中的命令行,则输入以下内容,输出为:

 f.readlines() 
 [] # output is just these empty brackets

最后,当我开始shell并输入时,      F =开放( 'file.txt的', 'R')

 f.readlines()

它可以完美打印我文件的所有行。

为什么“打印行”从.py文件起作用,但“f.readlines()”给出空输出?为什么shell命令行中的附加f.readlines()会在程序运行后给出[]?

2 个答案:

答案 0 :(得分:3)

您看到的问题是您希望Python中的每个调用都能打印出来。实际上,大多数时候调用只返回某种或那种类型的数据。

交互式Python shell的行为使得它打印函数调用的返回值。

打印结果的正确方法是使用print

f = open('file.txt','r')
print(f.readlines())

答案 1 :(得分:0)

这些命令是否全部按顺序排列?如果是这样,第一个for循环将带您到文件的末尾。您需要在文件的开头再次开始,以通过以下对f.readlines()的调用获得所需的输出。要在python中执行此操作,您可以使用f.seek(0)将您带回文件的开头。您需要在每个f.readlines()之间执行此操作,或者在迭代文件的循环之间执行此操作。这也是一个更适合stackoverflow而不是程序员的问题。

f=open('file.txt','r')

for line in f:

          print line
f.seek(0)

f.readlines()

希望这会有所帮助。