2017-03-10 118 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

嘗試使用緩衝區描述更好的方法,以確保我們能夠處理更大的文件。 –