Python-循環遍歷文件


python中打開文件需要使用內置函數open

格式:

  open(name[,mode[,buffering]])
  啟動mode和buffering 是可選的,默認情況下mode是r
 

mode:

  r:以讀方式打開
  w:以寫方式打開 (文件不存在會創建,存在的話,會清空文件,很危險)
  a:以追加的方式打開
  r+:以讀寫模式打開
  w+:以讀寫模式打開
  a+:以讀寫模式打開
  rb:以二進制讀模式打開(特殊文件需要用文本模式傳輸的話,建議使用b)
  wb:以二進制寫模式打開
  ab:以二進制追加模式打開
 
 

方法:

  fd = open('/tmp/test.txt','r')
  以讀模式打開,可以利用一個變量去接收,注意這個變量是一個文件對象
 
  fd.close()
  關閉打開的文件,(修改等操作,只有關閉了文件,才會生效)
 
  fd.write("123")
  寫入(需要寫模式),注意寫入的內容必須是一個字符串。
 
  fd.read(int)
  一次性讀取文件所有內容,那么再次執行read()方法的時候,指針在末尾,所以就為空了。如果指定了int,那么就只讀取int個字符
 
  fd.readline()
  一行一行讀取,返回字符串,當指針到文件默認,返回空
 
  fd.readlines()
  一次讀取所有行,並把每一個行當成一個元素,存儲在序列中(如果文件很大,那么非常占內存)
 
  fd.next()
  第一讀取一行,知道行尾,到行尾的時候會報錯
 
 

練習:

  for 循環遍歷文件: 打印文件的每一行
#!/usr/bin/env python
fd = open('/tmp/hello.txt')
  for line in fd:
    print line,
 
注意:這里for line in fd,其實可以從fd.readlines()中讀取,但是如果文件很大,那么就會一次性讀取到內存中,非常占內存,而這里fd存儲的是對象,只有我們讀取一行,它才會把這行讀取到內存中,建議使用這種方法。
 
  while循環遍歷文件:
#!/usr/bin/env python
fd = open('/tmp/hello.txt')
while True:
  line = fd.readline()
  if not line:
    break
    print line,
fd.close()
 

擴展:

    如果不想每次打開文件都關閉,可以使用with關鍵字,2.6以上版本支持with讀取 with open('/tmp/hello.txt') as fd: 然后所有打開文件的操作都需要縮進,包含在with下才行
with open('/tmp/hello.txt') as fd:
while True:
  line = fd.readline()
  if not line:
    break
    print line,
 

 


免責聲明!

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



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