首頁 > 軟體

Python基礎之檔案操作及遊標移動詳解

2022-11-05 14:00:52

一、檔案操作

1、檔案的概念

1.檔案就是計算機暴露給使用者操作硬碟的快捷方式

2.計算機的檔案,就是用來儲存某種資訊的資料

3.在計算機中,檔案是以二進位制的方式儲存資訊的

2、程式碼開啟檔案的方式

方式一:
	f = open(檔案路徑, 讀寫模式, encoding='utf8')
	f.close()
方式二:  # 子程式碼執行結束後會自動呼叫close方法關閉資源
	with open(檔案路徑, 讀寫模式,encoding='utf8') as f: 
須知:
# 1、open方法的第一個引數是檔案路徑,並且撬棍跟一些字母的組合會產生特殊的含義導致路徑查詢混亂 為了解決該問題可以在字串的路徑前面加字母r
	D:ant
	r'D:ant'
# 2、with一次性可開啟多個檔案
	with open() as f1,open() as f2,open() as f3:

二、檔案讀寫模式

1、'r' 唯讀模式 read

	只能讀,不能寫
1.檔案路徑不存在:直接報錯
	with open(r'b.txt','r',encoding='utf8') as f:
		print(f.read())
2.檔案路徑存在:正常讀取內容
	with open(r'a.txt', 'r', encoding='utf8') as f:
		print(f.read())

2、'w' 只寫模式 write

	只能寫,不能看
1.檔案路徑不存在:  # 建立新的檔案
	with open(r'b.txt','r',encoding='utf8') as f:
		pass
2.檔案路徑存在:  # 先清空檔案內容,在重新寫入
	with open(r'a.txt', 'r', encoding='utf8') as f:
		f.write('編寫內容')
須知:
# 1、編寫的內容需要自己加入換行符,在儲存後u而要注意他的存在

3、'a' 尾部追寫模式 add

	只能在檔案末尾新增資料
1.檔案路徑不存在:  # 建立新的檔案
	with open(r'b.txt','a',encoding='utf8') as f:
		pass
2.檔案路徑存在:  # 在檔案末尾新增
	with open(r'a.txt', 'a', encoding='utf8') as f:
		f.write('編寫內容')

當我們在編寫程式碼的時候 有些部分不知道寫什麼具體程式碼 但是也不能空著不寫
這個時候可以使用關鍵字: pass

作用:是為了保證程式結構的完整性,否則會報錯

三、檔案操作模式

1、t 文字模式

	文字模式為預設模式
1、讀寫模式簡寫:r、w、a
       	全稱:rt、wt、at
須知:
# 1、只能操作文字檔案
# 2、讀寫以字元為單位
# 3、需要指定encoding引數,不填寫則採用計算機預設的編碼

2、b 二進位制模式

	byte模式
1、不是預設的模式,需要指定生成
		rb、wb、ab
須知:
# 1、可以操作任意檔案
# 2、讀寫都是以bytes為單位
# 3、不需要指定encoding引數,不需要編碼

不管是哪種模式,針對檔案路徑是否存在的情況都是一樣的

四、檔案諸多方法

1、read()

程式碼錶現:
	檔名.read()
須知:
#  1、一次性讀取檔案內容,並且遊標停留在檔案末尾,繼續讀取則沒有內容
#  2、當檔案內容比較多的時候,該方法還可能會造成計算機記憶體溢位
#  3、括號內可以填寫數位,在文字模式下,表示讀取幾個字元
#  4、通常一箇中文三個位元組(或更多)一個英文字母一個位元組

2、for迴圈

程式碼錶現:
    for 資料值 in 需要遍歷的檔案:
須知:
# 1、一行行讀取檔案內容 避免記憶體溢位現象的產生	

3、line

1、readline
	程式碼錶現:
    檔名.readline()
	須知:
	# 1、一次唯讀一行內容
2、readlines
	程式碼錶現:
    檔名.readline()
   須知:
	# 1、一次性讀取檔案內容,會按照行陣列織成列表的一個個資料值

4、readable

程式碼錶現:
	程式碼錶現:
    檔名.readable()
須知:
# 1、判斷檔案是否具備讀取資料能力

5、write

1、write
	用於向檔案中寫入指定資料
	程式碼錶示:
    f = open("a.txt", 'w')
    f.write("寫入一行新資料")
    f.close()
2、writeable
	用來判斷檔案是否可寫入資料
	程式碼錶示:
    f = open("nhooo.txt", "a")
    print(f.writable())
    	可以寫入: Ture
    	不可寫入: False
3、writelines
	用於接收一個列表,一次性將列表中所有資料寫入
	程式碼錶示:
    f = open('a.txt', 'r')
    n = open('b.txt','w+')
    n.writelines(f.readlines())
    n.close()
    f.close()

6、flush

用於重新整理內部緩衝區,這是在python中處理fila處理時的最佳實踐,可以在將新文字寫入/新增到檔案之前清除內部緩衝區。將記憶體中檔案資料立刻刷到硬碟 等價於ctrl + s

程式碼錶示:

	 file_object.flush()

五、檔案內遊標的移動

1、seek()

	移動檔案的讀取指標到指定位置。seek函數需要使用檔案物件進行呼叫,無返回值。
	seek()有三種用法:
   	seek(offset,whence)
    offset  控制遊標移動的位移量(位元組)
    whence  模式
        0   基於檔案開頭移動多少位元組
        1   基於遊標當前所在位置移動多少位元組
        2   基於檔案末尾移動多少位元組
    ps:1和2只能在二進位制模式下使用 0無所謂

2、tell()

	用來獲取遊標當前的位置(移動的位元組數)
    程式碼錶示:
    檔名.tell()
    # 返回遊標當前所在的位元組數

以上就是Python基礎之檔案操作及遊標移動詳解的詳細內容,更多關於Python檔案操作遊標移動的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com