今天小編就爲大家分享一篇關於Python基礎之文件讀取的講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
with open(filename) as fp: dataMat = [] for line in fp.readlines(): # fp.readlines()返回一個list,list of strs # 也即line類型爲`str` curLine = line.strip().split('\t') # 只有`str`類型纔有strip()成員函數, # 在經過split()分割,得到list類型 # 也即curLine類型爲list # curLine 仍然是由字符串構成的list dataMat.extend([float(entry) for entry in curLine]) # 對每一個類型進行強轉
文件流成員函數
(1)fp.readlines():返回的是由字符串構成的 list,list of strs(文件中的每一行爲一個字符串,劃分行的標識是\n(換行符))
(2)str.strip():strip() 是字符串的成員函數,strip()的返回值仍然爲字符串
(3)str.split():split() 是字符串的成員函數,返回值是是字符串構成的 list,list of strs
(4)從文件中讀取的數據(經過行,再對行切分)都是字符串類型,如果需要轉換爲數值,需要強制類型轉換。
read()、readlines()、readline()
(1)read():讀取全部(自然是置於內存中),返回類型爲 str
(2)readlines():讀取全部行(置於內存中),list of strs(較適合按行迭代)
for line in fp.readlines(): ... # line 中的內容其實就是 readline 的內容
(3)readline():逐行讀取,返回類型爲 str
while True: line = fp.readline() if not line: break ...
當要讀取的文件過大,應優先使用 readline() 逐行讀取,出於內存的考慮。
io.UnsupportedOperation: read
也即不支持讀操作,爲什麼 with open() as fp: fp(文件流)卻不可以讀呢?獲取文件的mode(模式)不對,如果設置成了w或者wb,就意味着只寫模式。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接