Python學習筆記-文本處理(1)

open read readline readlines 初階

測試文件train_data.txt

以下是部分數據

4.45925637575900    8.22541838354701    0
0.0432761720122110  6.30740040001402    0
6.99716180262699    9.31339338579386    0
4.75483224215432    9.26037784240288    0
8.66190392439652    9.76797698918454    0
···
···
4.15244831176753    1.44597290703838    1
9.55986996363196    1.13832040773527    1
1.63276516895206    0.446783742774178   1
9.38532498107474    0.913169554364942   1

1.open

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

file:文件路徑
mode:文件打開模式
r:以只讀方式打開文件(默認)
w:以寫入的方式打開文件,會覆蓋已存在的文件
x:如果文件已經存在,使用此模式打開會引發異常
a:以寫入模式打開,如果文件存在,則在末尾追加寫入
b:以二進制模式打開文件
t:以文本模式打開(默認)
+:可讀寫模式
U:通用換行符支持
open下面的函數:
f.close()—-關閉文件
f.read()—-讀取字符
f.readline()—-以寫入模式打開,如果文件已存在,則在末尾追加
f.write(str)—-將字符串str寫入文件
f.writeline(seq)—-寫入字符串序列,返回迭代對象
f.seek(offset,from)—-from(0表示文件的起始位置,1代表當前位置,2代表文件末尾)偏移offset個位置
f.tell()—-返回當前在文件中的位置

example:

f = open("train_data.txt")
In[2]: f
Out[2]: <_io.TextIOWrapper name='train_data.txt' mode='r' encoding='UTF-8'>

此時出來的是一個io.text,我們還需要read才能看裏面的數據。

2.read

read()      #return one big string

官網說返回一個大字符串,這個函數也確實將文件裏面的東西以字符串的形式返回。

f = open("train_data.txt")
ff = f.read()

這裏寫圖片描述

3.readline

顧名思義,就是一次讀一行。

f = open("train_data.txt")
f1 = f.readline()

此時顯示的是第一行:

4.45925637575900    8.22541838354701    0

但是readline是記錄文件指針的,再次執行readline(),會跳到下一行。

f = open("train_data.txt")
f1 = f.readline()
f2 = f.readline()

結果就是:

f1
Out[22]: '4.45925637575900\t8.22541838354701\t0\n'

f2
Out[23]: '0.0432761720122110\t6.30740040001402\t0\n'

到達最後一行接着readline就是顯示''

f5
Out[29]: ''

4.readlines

官方說返回一個list

readlines   #returns a list of lines

這裏寫圖片描述
這裏寫圖片描述
感覺readlines跟read差不多,都是直接把文件全部返回。但是,read返回的是string,readlines返回的是list。

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