<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在python中使用open函數對檔案進行處理。
python開啟檔案使用open()函數,返回一個指向檔案的指標。該函數常用以下三個引數。
目標檔案的路徑+名字。最好使用r"路徑"這種原始字串寫法,防止有跳脫字元影響實際路徑。
操作檔案的方式mode=‘方式’。mode=可以省略。下面對操作檔案的方式進行詳細說明:
(1)r
以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是open預設模式。如果檔案不存在,會報錯。
(2)rb
以二進位制唯讀方式開啟一個檔案。檔案指標將會放在檔案的開頭。注意這種方式不能使用encoding,不然會報錯。
同樣的內容使用一般方式和二進位制的方式開啟。
fp = open(r"E:test.txt",'r',encoding='utf-8') content = fp.readline() print(content)
輸出:加油,好好幹!
fp = open(r"E:test.txt",'rb') content = fp.readline() print(content)
輸出:b’xe5x8axa0xe6xb2xb9xefxbcx8cxe5xa5xbdxe5xa5xbdxe5xb9xb2xefxbcx81’
(3)r+
以讀寫方式開啟一個檔案。檔案指標將會放在檔案的開頭。直接寫入會覆蓋檔案開頭的內容。
原始內容:
加油,好好幹!別放棄
fp = open(r"E:test.txt",'r+',encoding='utf-8') fp.write("開心吧") fp.close() fp = open(r"E:test.txt", 'r', encoding='utf-8') content = fp.readline() print(content) fp.close()
執行後:
開心吧好好幹!別放棄
(4)rb+
以二進位制讀寫方式開啟一個檔案。檔案指標將會放在檔案的開頭。
(5)w
以寫入開啟一個檔案。如果該檔案已存在,則將其覆蓋。如果該檔案不存在,則建立新檔案。
(6)wb
以二進位制寫入方式開啟一個檔案。如果該檔案已存在,則將其覆蓋。如果該檔案不存在,則建立新檔案。
(7)w+
以讀寫方式開啟一個檔案。如果該檔案已存在,則將其覆蓋。如果該檔案不存在,則建立新檔案。
原始內容:
開心吧好好幹!別放棄
fp = open(r"E:test.txt",'w+',encoding='utf-8') fp.write("認真一點") fp.close() fp = open(r"E:test.txt", 'r', encoding='utf-8') content = fp.readline() print(content) fp.close()
執行後直接覆蓋所有原始內容:
認真一點
(8)wb+
以二進位制讀寫格式開啟一個檔案。如果該檔案已存在,則將其覆蓋。如果該檔案不存在,則建立新檔案。
(9)a
以追加方式開啟一個檔案。如果檔案已存在,檔案指標將會放在檔案結尾。即:新的內容將會被追加到已有的內容之後。如果該檔案不存在,則建立新檔案可用於寫入。注意,不能讀,讀會出錯。
(10)a+
以讀寫方式開啟一個檔案。如果檔案已存在,檔案指標將會放在檔案結尾。即:新的內容將會被追加到已有的內容之後。如果該檔案不存在,則建立新檔案可用於讀寫。
原始內容:
認真一點
fp = open(r"E:test.txt",'a+',encoding='utf-8') fp.write("你就離成功近一點") fp.close() fp = open(r"E:test.txt", 'r', encoding='utf-8') content = fp.readline() print(content) fp.close()
執行後追加:
認真一點你就離成功近一點
這時候,指標放在檔案尾部,直接讀取會沒有內容,需要將指標移動(seek)到檔案的頭部:
with open(r"E:test.txt",'a+',encoding='utf-8') as fp: fp.seek(0,0) content = fp.readline() print(content)
(11)ab+
以二進位制讀寫方式開啟一個檔案。如果檔案已存在,檔案指標將會放在檔案結尾。即:新的內容將會被追加到已有的內容之後。如果該檔案不存在,則建立新檔案可用於讀寫。
編碼的方式,常用utf-8,gbk等。如:encoding=‘utf-8’
如果是二進位制的方式,這個引數不需要填,填了還會報錯。
這是open()的一種升級用法,控制塊結束的時候檔案會自動關閉,不需要顯示地呼叫close()關閉檔案。這種方法更方便使用,所以推薦大家使用這種方法。
with open(r"E:test.txt",'r',encoding='utf-8') as fp: content = fp.readlines()
檔案內容:
認真一點你就離成功近一點
啊啊啊啊啊啊啊啊啊啊啊
fffffffffff
(1)read()
一次性讀取整個檔案內容,將整個檔案放到一個字串中。使用read(size)方法,返回檔案中的前size個字元:
content = fp.read()
輸出:
認真一點你就離成功近一點
啊啊啊啊啊啊啊啊啊啊啊
fffffffffff
(2)readline()
每次讀取一行內容。
content = fp.readline()
輸出:
認真一點你就離成功近一點
(3)readlines()
一次性讀取整個檔案內容到一個迭代器以供我們遍歷(讀取到一個list中,以供使用,比較方便)
content = fp.readlines()
輸出;
[‘認真一點你就離成功近一點n’, ‘啊啊啊啊啊啊啊啊啊啊啊n’, ‘fffffffffff’]
(1)write()
fp.write()的引數必須是一個字串,就是你要寫入檔案的內容.
(2)writelines()
fp.writelines()的引數可以是列表,也可以是字串。
如果檔案可寫,則 fp.writable() 方法返回 True,否則返回 False。
如果檔案是可讀的,則 fp.readable() 方法返回 True,否則返回 False。
比如:以w方式開啟的檔案,fp.readable()返回False,fp.writable()返回True。
seek
f.seek(偏移量,[起始位置])
起始位置的三種取值:0檔案開頭,1當前位置,2檔案末尾
例子見1.3中(10)a+
tell()返回一個整數,表示當前檔案指標的位置(就是到檔案頭的位元組數).
如果是utf-8編碼,那麼一箇中文字元佔用三個位元組,一個英文字元佔用一個位元組。如果是gbk編碼,那麼一箇中文字元佔用兩個位元組,一個英文字元佔用一個位元組。
with open(r"E:test.txt",'a+',encoding='utf-8') as fp: content = fp.tell() print(content)
列印:30
truncate(size) 方法用於截斷檔案,如果指定了可選引數 size,則表示截斷檔案為 size 個字元。 如果沒有指定 size,則從當前位置起截斷;截斷之後 size 後面的所有字元被刪除。
到此這篇關於python中open函數對檔案處理的文章就介紹到這了,更多相關python open函數使用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45