最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python中的文件操作

 更新時間:2021年01月14日 16:00:12   作者:Leslie-x  
這篇文章主要介紹了Python中文件操作的相關資料,幫助大家更好的理解和學習python,感興趣的朋友可以了解下

一:文件的打開模式

了解過字符編碼都知道,文件都是以某一種標準編碼成二進制存在硬盤里的,在文件的默認打開模式下f = open('a.txt','rt',encoding='utf-8') 其中的t表示是以文本模式打開文件,在應用程序給操作系統發(fā)送數據請求后,操作系統在硬盤讀取二進制編碼,然后返還給應用程序,通過open方法,將編碼解碼成我們看到的字符;如果是以b模式打開文件的話,open方法不會對操作系統返回的二進制數據作處理,而是直接打印。

f = open('a.txt','rt',encoding='utf-8') 

其中的t表示是以文本模式打開文件,在應用程序給操作系統發(fā)送數據請求后,操作系統在硬盤讀取二進制編碼,然后返還給應用程序,通過open方法,將編碼解碼成我們看到的字符,那么在b模式下打開文件,操作系統返還直接是一串二進制數字

文件的三種打開方式:

只讀模式:‘r'

只寫方式:'w'

追加模式:'a'

以字節(jié)模式打開文件的話,需要注意:

一定要寫上‘b',只能以rb,wb,ab這種形式打開文件,不能省略‘b'。

f = open('a.txt','rb')  
f = open('a.txt','wb') 
f = open('a.txt','ab') 
#錯誤寫法
f = open('a.txt','r') #未注明以b模式打開,這種寫法是默認文本模式打開 
f = open('a.txt','rb',encode = 'utf-8') #b模式打開,不能傳入編碼方式

字節(jié)模式下讀寫都是以bytes為單位的。如果想寫入字符,需要編碼后以字節(jié)類型寫入

f = open('a.txt','wb')
f.write('你哈'.encode('utf-8'))

注意:對于非文本文件,我們只能使用字節(jié)模式,"b"表示以字節(jié)的方式操作(而所有文件也都是以字節(jié)的形式存儲的,使用這種模式無需考慮文本文件的字符編碼、圖片文件的jgp格式、視頻文件的avi格式)

二:字節(jié)模式下的操作

字節(jié)模式打開非文本文件

with open('1.jpg', 'rb') as f: # 以只讀模式打開文件
  data = f.read()       # 讀取文件全部內容,并賦值給變量data
print(data)           # 打印變量,我們得到是b'\xff\xd8\xff\xe0\x00這種形式的結果
print(type(data))        # 變量的類型<class 'bytes'>

with open('1.jpg','rb') as f:
    data = f.read()
print(type(data))
print(data.decode('utf-8'))   #將讀取的編碼以utf-8標準解碼
                 #圖片文件編碼方式不是utf-8,所以不能解碼,程序報錯

以字節(jié)模式打開文本文件:

with open('db.txt', 'rb') as f: 
  data = f.read()
print(data)         # 打印出來的是一串二進制數
print(data.decode('utf-8')) # 把二進制數用utf-8標準解碼
print(type(data))      # 可以在屏幕上顯示人類能看懂的字符了

with open('db.txt', 'wb') as f:
  f.write('你好啊\n'.encode('utf -8'))

在以字節(jié)打開文件時,文件的操作都要基于二進制進行了.

三:文件的修改  

文件的修改并不是我們直觀感受上的擦除重新寫上,基于硬盤的特性,任何文件的修改操作都是新內容對原內容的覆蓋。修改的概念存在于內存中,當應用程序啟動,請求操作系統從硬盤中讀取數據,讀取的數據運行在內存上,這時,我們在應用程序上的操作修改類內存上的數據內容,但是并不影響到硬盤的數據。當我們點擊保存時,新的數據會將原數據覆蓋。這時,才完成了文件的修改。

修改文件方式一:
  1:先把文件內容全部讀取
  2:在內存中修改
  3:把修改好的內容覆蓋寫入到硬盤上

with open("db.txt", "r", encoding="utf-8") as f:  # 打開文件
  data = f.read()                # 讀取文件全部內容
  data = data.replace("你好啊:", "======")    # 修改文件內容
  
with open("db.txt", "w", encoding="utf-8") as f:  # 以‘w'模式打開,清空文件
  f.write(data)                 # 把修改后的數據寫入

修改文件方式二:

  1:以讀的方式打開源文件
  2:以寫的方式打開一個新文件

import os # 引入os模塊

with open('a.txt', 'r', encoding='utf-8') as read_f, \
    open('new.txt', 'w', encoding='utf-8') as new_f: # 同時打開文件
  for line in read_f:                  # 循環(huán)原文件內容
    if '你好啊' in line:
      line = line.replace('你好啊', '哈哈哈哈哈哈') # 替換源文件內容
    new_f.write(line)                # 把原文件循環(huán)出來的內容寫入到新文件中,
    
os.remove('a.txt')                   # 調用OS模塊功能刪除原文件
os.rename('new.txt', 'a.txt')              # 重命名新文件

以上就是詳解Python中的文件操作的詳細內容,更多關于python 文件操作的資料請關注腳本之家其它相關文章!

相關文章

  • python列表刪除和多重循環(huán)退出原理詳解

    python列表刪除和多重循環(huán)退出原理詳解

    這篇文章主要介紹了python列表刪除和多重循環(huán)退出原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Python使用flask-caching緩存數據的示例代碼

    Python使用flask-caching緩存數據的示例代碼

    Flask-Caching 是 Flask 的一個擴展,為任何 Flask 應用程序添加了對各種后端的緩存支持,它基于 cachelib 運行,并通過統一的 API 支持 werkzeug 的所有原始緩存后端,本文給大家介紹了Python使用flask-caching緩存數據,需要的朋友可以參考下
    2024-12-12
  • OpenCV實戰(zhàn)案例之車道線識別詳解

    OpenCV實戰(zhàn)案例之車道線識別詳解

    計算機視覺在自動化系統觀測環(huán)境、預測該系統控制器輸入值等方面起著至關重要的作用,下面這篇文章主要給大家介紹了關于OpenCV實戰(zhàn)案例之車道線識別的相關資料,需要的朋友可以參考下
    2022-10-10
  • 詳解Python中的時間格式的讀取與轉換(time模塊)

    詳解Python中的時間格式的讀取與轉換(time模塊)

    這篇文章主要介紹了Python中的時間格式的讀取與轉換(time模塊),文末給大家介紹了python的時間獲取與轉化:time模塊和datetime模塊的相關知識,需要的朋友可以參考下
    2023-05-05
  • django第一個項目127.0.0.1:8000不能訪問的解決方案詳析

    django第一個項目127.0.0.1:8000不能訪問的解決方案詳析

    django項目服務啟動后無法通過127.0.0.1訪問,下面這篇文章主要給大家介紹了關于django第一個項目127.0.0.1:8000不能訪問的解決方案,需要的朋友可以參考下
    2022-10-10
  • Python Asyncio調度原理詳情

    Python Asyncio調度原理詳情

    這篇文章主要介紹了Python Asyncio調度原理詳情,Python.Asyncio是一個大而全的庫,它包括很多功能,而跟核心調度相關的邏輯除了三種可等待對象外,還有其它一些功能,它們分別位于runners.py,base_event.py,event.py三個文件中
    2022-06-06
  • Python實現提取Word文檔中的文本和圖片

    Python實現提取Word文檔中的文本和圖片

    將內容從?Word?文檔中提取出來可以方便我們對其進行其他操作,如將內容儲存在數據庫中,本文將介紹如何使用簡單的代碼實現從?Word?文檔中提取文本和圖片內容并保存,需要的可以參考下
    2023-12-12
  • 詳解Python編程中time模塊的使用

    詳解Python編程中time模塊的使用

    這篇文章主要介紹了詳解Python編程中time模塊的使用,是Python入門學習中的基礎知識,需要的朋友可以參考下
    2015-11-11
  • 如何實現在遠程linux服務器上運行python代碼

    如何實現在遠程linux服務器上運行python代碼

    這篇文章主要介紹了如何實現在遠程linux服務器上運行python代碼問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Python+PyQt5編寫圖片格式轉換器

    Python+PyQt5編寫圖片格式轉換器

    這篇文章主要為大家詳細介紹了如何利用Python和PyQt5編寫一個簡單的圖片格式轉換器,文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下
    2023-07-07

最新評論

上杭县| 房产| 玛沁县| 象山县| 云龙县| 深水埗区| 济宁市| 封丘县| 巢湖市| 建宁县| 茂名市| 宁夏| 诏安县| 南部县| 通渭县| 堆龙德庆县| 丁青县| 台前县| 高陵县| 苍南县| 六安市| 广东省| 上林县| 平度市| 同仁县| 卢龙县| 松潘县| 报价| 同江市| 郸城县| 巫山县| 淮安市| 合作市| 望城县| 新泰市| 龙陵县| 惠水县| 黄大仙区| 深圳市| 永仁县| 婺源县|