一文教你學會python讀取文字及字串常用操作
阿新 • • 發佈:2018-11-30
python 讀取txt檔案
開啟支付寶首頁搜尋‘543701491’,領取馬雲的支付寶紅包
Python的文字處理是經常碰到的一個問題,Python的txt檔案讀取中,有三類方法:read()、readline()、readlines(),這三種方法各有利弊,下面逐一介紹其使用方法和利弊。
read():
- read()是最簡單的一種方法,一次性讀取檔案的所有內容放在一個大字串中,即存在記憶體中
file_object = open('test.txt') //不要把open放在try中,以防止開啟失敗,那麼就不用關閉了 try: file_context = file_object.read() //file_context是一個string,讀取完後,就失去了對test.txt的檔案引用 # file_context = open(file).read().splitlines() // file_context是一個list,每行文字內容是list中的一個元素 finally: file_object.close() //除了以上方法,也可用with、contextlib都可以開啟檔案,且自動關閉檔案, //以防止開啟的檔案物件未關閉而佔用記憶體
- read()的利端:
- 方便、簡單
- 一次性獨讀出檔案放在一個大字串中,速度最快
- read()的弊端:
- 檔案過大的時候,佔用記憶體會過大
readline():
- readline()逐行讀取文字,結果是一個list
with open(file) as f: line = f.readline() while line: print line line = f.readline()
- readline()的利端:
- 佔用記憶體小,逐行讀取
- readline()的弊端:
- 由於是逐行讀取,速度比較慢
readlines():
- **readlines()一次性讀取文字的所有內容,結果是一個list
with open(file) as f: for line in f.readlines(): print line
- 這種方法讀取的文字內容,每行文字末尾都會帶一個'\n'換行符 (可以使用L.rstrip('\n')去掉換行符)
- readlines()的利端:
- 一次性讀取文字內容,速度比較快
- readlines()的弊端
- 隨著文字的增大,佔用記憶體會越來越多
最簡單、最快速的逐行處理文字的方法:直接for迴圈檔案物件
file_object = open('test.txt','rU')
try:
for line in file_object:
do_somthing_with(line)//line帶"\n"
finally:
file_object.close()
如果對於讀取到的一行內容要進行分割,也很容易,可以使用split進行分割
s='hello! my word'
print s.split()
#輸出結果為['hello!', 'my', 'word']
如果是格式化的定長的字元,也可以使用下標進行讀取,比如s=‘helloworld’,s[5:]讀到的就是'world'