2015-04-23 41 views
0
import os.path 
os.path.exists('~/fileToExperiment.txt') 
myfile = open('~/fileToExperiment.txt','r') 
myfile.readlines() 

for line in myfile: 
    print line 

所以我试图运行这个非常简单的Python代码,但它亘古不变的输出任何东西也不会有任何错误。 filestoExperiment文本不为空。文件打开(),readlines方法()

这里有什么问题吗?有人可能指出

+3

摆脱'myfile.readlines()'完全;你可以直接迭代文件。 – jonrsharpe

回答

5

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

lines = myfile.readlines() 

for line in lines: 
    print line 
+0

哇..谢谢。有效 :) – Maria

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声明,处理文件时,建议的(无需事后关闭文件)。

0

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

  1. readlines方法() - 返回的完整文件作为一个 例如 “字符串各自通过\分离的n清单”,

代码:

print myfile.readlines() 

输出:

['Hello World\n', 'Welcome to Python\n', 'End of line\n'] 
  1. 循环文件obj等 - 您可以遍历文件对象以读取文件中的行。 这是内存高效,快速,并导致简单的代码。例如,

代码:

myfile = open('newfile.txt', 'r') 

    for line in myfile: 
     print line 

输出:

Hello World 
    Welcome to Python 
    End of line