python中的三個讀read(),readline()和readlines()


Python 將文本文件的內容讀入可以操作的字符串變量非常容易。

文件對象提供了三個“讀”方法: .read()、.readline() 和 .readlines()。

每種方法可以接受一個變量以限制每次讀取的數據量,但它們通常不使用變量。

.read() 每次讀取整個文件,它通常用於將文件內容放到一個字符串變量中。然而 .read() 生成文件內容最直接的字符串表示,但對於連續的面向行的處理,它卻是不必要的,並且如果文件大於可用內存,則不可能實現這種處理。

.readline() 和 .readlines() 非常相似。它們都在類似於以下的結構中使用:

Python .readlines() 示例

        fh = open( 'c:\\autoexec.bat')        

for line in fh.readlines():                    

print   line.readline() 和 .readlines()

之間的差異是后者一次讀取整個文件,象 .read()一樣。

.readlines()自動將文件內容分析成一個行的列表,該列表可以由 Python 的 for... in ... 結構進行處理。

另一方面,.readline()每次只讀取一行,通常比 .readlines()慢得多。僅當沒有足夠內存可以一次讀取整個文件時,才應該使用.readline()。   

寫:

writeline()是輸出后換行,下次寫會在下一行寫。write()是輸出后光標在行末不會換行,下次寫會接着這行寫

======================================================

文件1有兩行

a
b

line1=file1.read()  輸出結果為“文件的全部文本”

a
b

line1=file1.readline()   輸出結果為“文件的首行”

a

line1=file1.readlines() 輸出結果為“所有文件行程一行,類似list列表的形式”

  ['a\n', 'b']

==================================================================

  1. 過readline輸出,對於比較大的文件,這種占用內存比較小。  
  2. #coding:utf-8  
  3.   
  4. f = open('poem.txt','r')  
  5. result = list()  
  6. for line in open('poem.txt'):  
  7.     line = f.readline()  
  8.     print line  
  9.     result.append(line)  
  10. print result  
  11. f.close()                  
  12. open('result-readline.txt', 'w').write('%s' % '\n'.join(result))  

  

    1. #coding:utf-8  
    2. '''''cdays-4-exercise-6.py 文件基本操作 
    3.     @note: 文件讀取寫入, 列表排序, 字符串操作 
    4.     @see: 字符串各方法可參考hekp(str)或Python在線文檔http://docs.python.org/lib/string-methods.html 
    5. '''  
    6.   
    7. f = open('cdays-4-test.txt', 'r')                   #以讀方式打開文件  
    8. result = list()  
    9. for line in f.readlines():                          #依次讀取每行  
    10.     line = line.strip()                             #去掉每行頭尾空白  
    11.     if not len(line) or line.startswith('#'):       #判斷是否是空行或注釋行  
    12.         continue                                    #是的話,跳過不處理  
    13.     result.append(line)                             #保存  
    14. result.sort()                                       #排序結果  
    15. print result  
    16. open('cdays-4-result.txt', 'w').write('%s' % '\n'.join(result)) #保存入結果文件  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM