python處理大文件

經常使用的方法是:python

fd = open(r'PATH', 'r')
for line in fd.readlines:
    line.process

對於大文件而言這樣的處理對於1G以上的文件效率較低,StackOverFlow上的推薦以下:web

with open('Path', 'r') as f:
    for line in f:
        line.process

實際使用了下,感受還能夠,具體原理還在研究中,只得注意的是對於python2.7和python3.x實際使用處理有所區別,在python2.7中,沒法按照utf-8編碼讀取文件。以下轉自http://blog.sina.com.cn/linson66python3.x

2.文件處理python2.7

python2.x編碼

--------------------spa

fp=open('testsrc.txt','r')  # 第二個參數是文件打開模式,r(讀),w(寫),a+(讀寫,追加內容到末尾)
                            # 第二個參數加上'b' 表示用字節方式讀寫(wb,rb)
fp.read()                   # 讀取內容 ,f.read(1024),讀取長度爲1024字符
fp.close()
#write
fp=open('testsrc.txt','w')
fp.write("helloworld")
fp.close()

---------------------code

python3.xorm

with open("testsrc.txt",'r',encoding='utf-8') as f: #python2.6+ 就支持 with 操做
     print(f.read())    #python3.x 的open 比 python2.x 多了一個 encoding參數,能夠用於
     f.close()          #指定文件使用的編碼 
                        #固然 python3.x也能夠按照2.x的方式處理,不過推薦使用with操做。寫操做參考上例。
相關文章
相關標籤/搜索