python之文件操作

打開文件的幾種方式

	r(只讀,文件的描述符在開頭)
	rb(二進制格式打開,只讀,文件的描述符在開頭)
	r+(讀寫,文件的描述符在開頭)
 	w(只寫,文件的描述符在開頭,若文件存在則會覆蓋,若不存在就會創建一個)
 	wb(二進制寫入文件,文件的描述符在開頭,同前)
 	w+(讀寫)
	a(打開文件,用於追加內容,文件若存在描述符在末尾)
	ab(二進制追加內容)
	a+(讀寫,文件的描述符在末尾)
	x(創建一個新文件並打開以寫入,若文件已存在則報錯)
	xb(創建一個新文件並打開以二進制寫入)
	t(文本模式,默認)

open函數

def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):
	file   # 文件的路徑
	mode   # 以哪種方式打開,默認是r(讀寫)
	buffering  # 用來設置緩衝策略的可選整數,通過0來關閉緩衝(只允許在二進制模式下),
	# 1來選擇行緩衝(只在文本模式下使用),並使用大於1的整數表示固定大小的塊緩衝區。
	# 若沒有參數,則使用默認緩衝區策略.在許多系統上,緩衝區通常是4096或8192字節長
	encoding  # 用於設置使用哪種編碼方式來進行編碼或解碼
	errors  # 設置爲"ignore"可以忽略錯誤,"strict"不忽略錯誤,默認爲不忽略錯誤,最好不要用在二進制模式下
	newline  # 只適用於文本模式(t)
	# 輸入模式下:不定義此參數,將會將'\n', '\r', '\r\n',轉換爲'\n',
	closefd  # 如果爲False,則在關閉文件時,底層文件描述符將保持打開狀態。當給定文件名時,這將不起作用,並且在這種情況下必須爲True。

讀文件

	---------  簡單讀文件(一次性讀取全部) --------
	path = "test.txt"
	f = open(path, 'r')
	f.read()
	---------  讀文件部分內容 --------
	f.read(10)  # 是根據字節來讀取的
	---------  讀一行數據 --------
	f.readline()
	---------  讀所有行數據 --------
	f.readlines()   # 返回一個列表
	---------- 修改文件描述符的位置  ---------
	f.seek(0) # 根據偏移量進行移動
	f.close() # 關閉文件

寫文件

	path = "test.txt"
	f.open(path, 'w')
	f.write("123456")  # 並不會立即寫入文件,要等待文件關閉或者緩衝區滿了之後纔會存入文件
	f.flush()  # 立即將緩衝區的數據存入文件
	f.close()

其他數據類型的讀寫set-tuple-dict-list
需要用到python的一個庫函數pickle,直接導入即可

	# 寫入
	path = "test.txt"
	list1 = [1, 2, 3, 4, [1, 2, 35]]
	with open(path, 'wb') as f:
	    pickle.dump(list1, f)

	# 讀取
	with open(path, 'rb') as f1:
	    list2 = pickle.load(f1)
	print(list2)

這是以二進制方式進行讀取的,雖然我們看不懂文件裏的內容,但並不影響我們對數據進行讀取

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