首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件open(),readLines()

文件open(),readLines()
EN

Stack Overflow用户
提问于 2015-04-23 06:56:16
回答 3查看 8.2K关注 0票数 1
代码语言:javascript
复制
 import os.path
 os.path.exists('~/fileToExperiment.txt')
 myfile = open('~/fileToExperiment.txt','r')
 myfile.readlines()

 for line in myfile:
     print line

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-23 06:57:16

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

代码语言:javascript
复制
 lines = myfile.readlines()

 for line in lines:
     print line
票数 6
EN

Stack Overflow用户

发布于 2015-04-23 06:59:56

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

更好的做法是:

代码语言:javascript
复制
with open('~/fileToExperiment.txt','r') as myfile:
    for line in myfile:
        print line

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

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

代码语言:javascript
复制
with open('~/fileToExperiment.txt','r') as myfile:
    content = myfile.read() ## or content = myfile.readlines()

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

票数 8
EN

Stack Overflow用户

发布于 2015-04-23 07:16:25

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

  1. readlines() -将完整的文件返回为“每个字符串由\n分隔的列表”,

代码:

代码语言:javascript
复制
    print myfile.readlines()

产出:

代码语言:javascript
复制
    ['Hello World\n', 'Welcome to Python\n', 'End of line\n']
  1. 循环文件对象-您可以在文件对象上循环以读取文件中的行。--这是内存效率高、速度快的,并导致简单的代码。例如,

代码:

代码语言:javascript
复制
    myfile = open('newfile.txt', 'r')

    for line in myfile:
      print line

产出:

代码语言:javascript
复制
    Hello World
    Welcome to Python
    End of line
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29815887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档