file open(),readLines()

时间:2015-04-23 06:56:16

标签: python

 import os.path
 os.path.exists('~/fileToExperiment.txt')
 myfile = open('~/fileToExperiment.txt','r')
 myfile.readlines()

 for line in myfile:
     print line

所以我试图运行这个非常简单的python代码,但它不输出任何内容,也没有任何错误。 filestoExperiment文本不为空。

这里有什么不对?有人可以指出

3 个答案:

答案 0 :(得分:7)

通过这样做,myfile.readlines()您已经阅读了整个文件。然后,我们尝试迭代您的文件对象,您已经在文件的末尾。

更好的做法是:

with open('~/fileToExperiment.txt','r') as myfile:
    for line in myfile:
        print line

myfile.readlines()会将文件的全部内容存储在内存中。如果您不需要同时使用整个内容,最好逐行阅读。

如果您确实需要整个内容,可以使用

with open('~/fileToExperiment.txt','r') as myfile:
    content = myfile.read() ## or content = myfile.readlines()

另请注意使用with语句,在处理文件时建议使用该语句(之后无需关闭文件)。

答案 1 :(得分:5)

您没有将这些行存储在变量中。所以试试这个:

 lines = myfile.readlines()

 for line in lines:
     print line

答案 2 :(得分:0)

您可以使用 readlines()循环文件对象来打印或读取文件中的行。

  1. readlines() - 将完整文件作为"字符串列表返回,每个字符串由\ n" 例如,
  2. 代码:

        print myfile.readlines()
    

    输出:

        ['Hello World\n', 'Welcome to Python\n', 'End of line\n']
    
    1. 循环文件对象 - 您可以循环文件对象以从文件中读取行。 这是内存效率高,速度快,并且可以实现简单的代码 。例如,
    2. 代码:

          myfile = open('newfile.txt', 'r')
      
          for line in myfile:
            print line
      

      输出:

          Hello World
          Welcome to Python
          End of line