網站首頁 編程語言 正文
1.文件介紹
python操作文件
1.1python文件的基本操作
打開文件關鍵字open
語法格式:
open('文件路徑','讀寫模式','字符編碼')
f = open('a.txt','r',encoding='utf-8')#打開文件
print(f.read())#操作文件
f.close()#關閉文件
1.2.with上下文管理器
(with打開文件之后會自動關閉)
語法格式:
with open(r'a.txt','r',encoding='utf-8') as f:
- as f:就相當于你寫了一個f = open,只不過這個as替換了等于號,這個f(句柄)就相當于一個變量名可以隨意更改
- r 的作用:有時有你在填寫路徑的時候遇到反斜杠可能會發生轉義,這個時候字符串最前面加上 r 來解決轉義的問題,
2.文件的讀寫模式
2.1. r ?== read: 只讀,不能寫
with open(r'a.txt','r',encoding='utf-8') as f:
f.read()
#read()是有缺陷的,如果打開文件特別大的時候就會打不開,會很慢。會導致內存溢出,因為他打開不會存在磁盤中,會先存在內存中
2.2. w ==write:只能寫,不能讀
with open(r'a.txt','w',encoding='utf-8') as f:
f.write('內容')
#如果路徑不存在,會新建一個文件
#如果文件存在,會先清空文件中的內容,在進行寫內容,就算不寫東西用pass,也會清空,w模式就會直接清空
# w 模式只能寫string類型
2.3. a == apppen : 追加
with open(r'a.txt','a',encoding='utf-8') as f:
f.write('內容\n')
#如果路徑不存在,會新建一個文件
#不會清空文件內容,但是不會換行,需要自己在內容后面加\n
多行數據:括號里不可能寫多行數據,需要多個write如下:
f.write('內容\n')
f.write('內容\n')
f.write('內容\n')
f.write('內容\n')
########r,w, a:只能讀寫文檔,不能讀寫視頻音頻
3.文件的操作方法
##讀模式
with open(r'a.txt','a',encoding='utf-8') as f:
print(f.readline())#一次讀取一行,會自動換行
print(f.readlines())#把文件內的數據按照每一行組裝成列表的模式
print(f.readable())#判斷是否可具備讀的條件,就是看這個文件是否可讀,返回bool值
##寫模式
with open(r'a.txt','a',encoding='utf-8') as f:
print (f.write())#直接清空數據,然后根據口號中的內容寫數據
print(f.writeable())#判斷是否具備寫的條件,返回bool值
print(f.writelines(['獻運好帥\n','獻運好帥\n','獻運好帥\n',]))#就是吧數據一行一行的給你去寫
##文件的操作優化
print(f.flush())#把內存中的數據立刻刷到硬盤中,因為你一開始寫的數據會存儲在內存中如果發生斷電數據會消失
"""文件句柄 f 支持for循環"""
with open(r'a.txt','a',encoding='utf-8') as f:
for line in f :
print(line)#把文件里面的數據一行一行打印,以后讀取文件的時候都要用for循環一行一行的去讀取
4.文件的操作模式
r. w. a. 模式
1. 只能操作文本
2. 都是以字符串為單位
3. r,w,a,原先的寫法是rt,wt,at,如果是只操作文本這個t可以省略
b模式:二進制
1.能操作任何的數據類型,eg:文本,音頻,視屏
2.寫法:rb ab wb ?:此時的b不能省略
3.b模式的情況下encoding參數不能寫,因為他都是字符編碼的模式了encoding就沒用了
##rb:
with open(r'a.jpeg','rb') as f:#b模式的話字符編碼就不要了
print(f.read())#打印出一推二進制數
##wb:
with open(r'a.jpeg','rb',encoding='utf-8') as f:
f.write(b'你好')#你好前面必須加上b才可以打印出,不然出來的是亂碼注釋第一種編碼方式
s.'你好'
f.write(s.encode(utf8))#這是第二種編碼方式
"""wb寫進去了也必須rb來讀,然后后面還需要跟上decode去解碼
print(f.read().decode('utf8'))
"""
##按照字符或字節讀取:要注意他讀取的數據大小
with open(r'a.txt','a',encoding='utf-8') as f:
print(f.read(1))#當 r 模式下,read括號里面的數字代表的是字符,但是在 b 模式下read后面括號里面的代表的是字節
原文鏈接:https://www.cnblogs.com/wangxianyun/p/17157478.html
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-06-18 C#實現無損壓縮圖片代碼示例_C#教程
- 2022-03-31 nginx平滑重啟和平滑升級的圖文教程_nginx
- 2022-07-09 使用python獲取cpu每秒的使用率_python
- 2022-11-05 python類別數據數字化LabelEncoder?VS?OneHotEncoder區別_pytho
- 2023-11-14 MathType 運行時錯誤‘53’:文件未找到:MathPage.WLL
- 2022-06-12 GO語言中常見的排序算法使用示例_Golang
- 2022-06-09 忘記Grafana不要緊2種Grafana重置admin密碼方法詳細步驟_服務器其它
- 2023-07-05 React 簡單實現 v-if和v-show的元素控制效果
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支