Python基礎之文件讀取的講解

今天小編就爲大家分享一篇關於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,就意味着只寫模式。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章