python--檔案處理1

來源:互聯網
上載者:User

標籤:

1.     讀取檔案方法: all_the_text = open(‘thefile.txt‘).read()但是為了安全起見還是給開啟的檔案對象指定一個名字,這樣在完成之後可以迅速關掉,防止無用檔案對象佔用記憶體;
例子:file_object = open(‘thefile.txt‘,r)try:     all_the_text = file_object.read()            #read()將檔案中所以字元都讀到all_the_text中去變成了一個巨大的字串,finally:     file_object.close()

不一定要加try,finally語句,但是加了更好,可以保證檔案對象被關閉即使在讀取中發生了嚴重錯誤;
  如果要讀入100個字元也可以直接:
text=file.read(100),
 如要一行行處理還可以:
ff = file_object.readlines()
  #讀出來是 list 類型,而且每行末尾都有‘\n‘符號;既然是一行行的,那麼列印也要一行行的顯示:  for line in ff:       print line            #此時line類型是string,而ff依然是list類型  #這樣列印出來不會亂,而如果直接 print   ff 則會一次性列印整個ff序列,而漢子在序列裡面是ASCII,會導致漢子列印不出來,而且特別亂;所以要一行行的列印’ 而最簡單方法:
for line in file_object:     line = line.rstrip(‘\n‘)     print line此時line是string類型,但每行末尾都有‘\n‘符號;可以再for主體部分加一句:line = line.rstrip(‘\n‘) 在每行末尾去掉‘\n‘符號,而line.restrip()則預設去掉空白符;
  2.    寫入檔案最方便的一個方法: 
open(‘thefile.txt‘,‘w‘).write(all_the_text)

  

但是最好還是給檔案對象指定一個名字,這樣方便關閉檔案對象
file_object = open(‘thefile.txt‘,‘w‘)file_object.write(all_the_text)file_object.close() 
 實際上用‘w’或者‘wb‘開啟的檔案,都是空檔案;哪怕是這個檔案不是空檔案,用這兩種方式開啟後,也會被清空;這種情況,就要用到‘a’或者‘ab’來開啟則不會清空;如果用‘a+‘這種方式來開啟的話不能寫的時候檔案不會被清空,而且還可以讀取檔案呢;注意:無論讀還是寫,檔案開啟之後遊標會一直往後走,直到關閉;當然也可以使用seek()函數來控制遊標  3.    搜尋和替換檔案中的文本replace(search_text,replace_text),用於字串的替換;  4.    從檔案中讀取指定的行enumerate():遍曆序列中的元素以及下標
>>> for i,j in enumerate([‘a‘,‘b‘,‘c‘]):...     print i,j...0 a1 b2 c

  

函數模組:
def getline(thefilepath,desired_line_number):     if desired_line_number < 1:          return ‘ ‘     for current_line_number,line in enumerate(open(thefilepath,‘ru‘)):          if current_line_number == desired_line_number-1:                    return line     return ‘‘
 庫檔案 linecache當對檔案進行多次讀取時,linecache,特別有用,它讀取並緩衝指定檔案裡的所有文本;用clearcache()來釋放被用作緩衝的記憶體,checkcache()來確保緩衝中的儲存是最新的; 
import linecachetheline = linecache.getline(thefilepath,desired_line_number)#簡單一句就可以得到檔案指定行的文本了,方便吧;

  

  5.    處理檔案中的每一個單詞首先看一個函數split()Python split()通過指定分隔字元對字串進行切片,如果參數num 有指定值,則僅分隔 num 個子字串執行個體:
#!/usr/bin/pythonstr = "Line1-abcdef \nLine2-abc \nLine4-abcd";print str.split( );print str.split(‘ ‘, 1 );以上執行個體輸出結果如下:[‘Line1-abcdef‘, ‘Line2-abc‘, ‘Line4-abcd‘][‘Line1-abcdef‘, ‘\nLine2-abc \nLine4-abcd‘]
 對每一個詞做一些處理,最好的就是兩重迴圈,一個用於處理行,一個用於處理單詞
for line in open(thefilepath):     for word in line.split():          dosometingwith(word)

 

6. 處理zip資料6.1 從zip檔案中讀取資料任務檢查一個zip文檔中所有子項,並列印子項名稱,以及大小;
#!/usr/bin/env python#encoding:utf-8import zipfile#以’r‘開啟zip檔案,z = zipfile.ZipFile("text.txt.zip","r")#從zip檔案清單中讀取子項名並讀取出來計算其位元組數for filename in z.namelist():        print ‘File:‘,filename        byte = z.read(filename)        print ‘has‘,len(byte),‘byte‘
 

python--檔案處理1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.