2017-03-10 136 views
0

我想读取文件,并按字母顺序打印内容。它只从文件中读取6个项目,不再进行。我不是要求别人为我做这件事,如果有人能够引导我朝着我所做的错误的方向发展,那么这里就是我的代码。For循环不读取整个文件

infile = open("unsorted_fruits.txt", "r") 
    outfile=open("sorted_fruits.txt","w") 
    fruit=infile.read(50).split() 


    #outfile.write(fruit) 

    fruit.sort() 

    for numbers in range(len(fruit)): 
     print(fruit[numbers]) 




    infile.close() 
    outfile.close() 
+2

您只能读取50个字节... –

+0

非常感谢您的支持。 – geekstudent

+0

虽然我们在这里,“因为我在范围内(len(水果)):'是来自recidivist C程序员的反模式。只需直接迭代,而不是生成索引和索引:“对于水果中的水果:print(afruit)'。它的速度更快(与直接迭代相比,索引成本高得惊人)和自我记录(没有匿名的'我'的名字,你正在命名每个循环中的项目)。 – ShadowRanger

回答

0

尝试.read()将水果设置为整个文件分割。

另外,尝试使用上下文管理器,所以你不必自己调用close()信息:

with open("unsorted_fruits.txt", "r") as infile: 
    #... do your stuff 
    #close will be called automatically 

如果你担心大量文件,然后再考虑在批量读取大文件的其他问题:Lazy Method for Reading Big File in Python?

在你提供的outfile代码示例中没有使用(注释掉),但是你可以使用嵌套的上下文管理器。

+0

尝试使用缓冲区描述更好的方法,以确保我们能够处理更大的文件。 –