Python基礎之文件操作及光標移動詳解
更新時間:2022年11月04日 14:01:23 作者:Kkkkangsh
這篇文章主要為大家介紹了Python基礎之文件操作及光標移動詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
一、文件操作
1、文件的概念
1.文件就是計算機暴露給用戶操作硬盤的快捷方式
2.計算機的文件,就是用來儲存某種信息的數據
3.在計算機中,文件是以二進制的方式儲存信息的
2、代碼打開文件的方式
方式一: f = open(文件路徑, 讀寫模式, encoding='utf8') f.close() 方式二: # 子代碼運行結束后會自動調用close方法關閉資源 with open(文件路徑, 讀寫模式,encoding='utf8') as f: 須知: # 1、open方法的第一個參數是文件路徑,并且撬棍跟一些字母的組合會產生特殊的含義導致路徑查找混亂 為了解決該問題可以在字符串的路徑前面加字母r D:\a\n\t r'D:\a\n\t' # 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.文件路徑不存在: # 創(chuàng)建新的文件 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.文件路徑不存在: # 創(chuàng)建新的文件 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、一次性讀取文件內容,并且光標停留在文件末尾,繼續(xù)讀取則沒有內容 # 2、當文件內容比較多的時候,該方法還可能會造成計算機內存溢出 # 3、括號內可以填寫數字,在文本模式下,表示讀取幾個字符 # 4、通常一個中文三個字節(jié)(或更多)一個英文字母一個字節(jié)
2、for循環(huán)
代碼表現: 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
用于刷新內部緩沖區(qū),這是在python中處理fila處理時的最佳實踐,可以在將新文本寫入/添加到文件之前清除內部緩沖區(qū)。將內存中文件數據立刻刷到硬盤 等價于ctrl + s
代碼表示:
file_object.flush()
五、文件內光標的移動
1、seek()
移動文件的讀取指針到指定位置。seek函數需要使用文件對象進行調用,無返回值。 seek()有三種用法: seek(offset,whence) offset 控制光標移動的位移量(字節(jié)) whence 模式 0 基于文件開頭移動多少字節(jié) 1 基于光標當前所在位置移動多少字節(jié) 2 基于文件末尾移動多少字節(jié) ps:1和2只能在二進制模式下使用 0無所謂
2、tell()
用來獲取光標當前的位置(移動的字節(jié)數) 代碼表示: 文件名.tell() # 返回光標當前所在的字節(jié)數
以上就是Python基礎之文件操作及光標移動詳解的詳細內容,更多關于Python文件操作光標移動的資料請關注腳本之家其它相關文章!