【问题标题】:readlines() function in PythonPython 中的 readlines() 函数
【发布时间】:2014-01-20 21:32:14
【问题描述】:

当我在 .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=open('file.txt','r')

 f.readlines()

它完美地打印了我文件的所有行。

为什么“打印行”可以从 .py 文件工作,但“f.readlines()”输出为空?为什么程序运行后shell命令行中多了一个f.readlines()然后给出[]?

【问题讨论】:

    标签: python shell


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      f=open('file.txt','r')
      
      for line in f:
      
                print line
      f.seek(0)
      
      f.readlines()
      

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-26
        • 1970-01-01
        • 2011-11-20
        相关资源
        最近更新 更多