python全棧開發-Day7 檔案處理,python-day7

來源:互聯網
上載者:User

python全棧開發-Day7 檔案處理,python-day7
python全棧開發-Day7   檔案處理一 、檔案操作

一 、介紹

電腦系統分為:電腦硬體,作業系統,應用程式三部分。我們用python或其他語言編寫的應用程式若想要把資料永久儲存下來,必須要儲存於硬碟中,這就涉及到應用程式要操作硬體,眾所周知,應用程式是無法直接操作硬體的,這就用到了作業系統。作業系統把複雜的硬體操作封裝成簡單的介面給使用者/應用程式使用,其中檔案就是作業系統提供給應用程式來操作硬碟虛擬概念,使用者或應用程式通過操作檔案,可以將自己的資料永久儲存下來。有了檔案的概念,我們無需再去考慮操作硬碟的細節,只需要關注操作檔案的流程:  #1. 開啟檔案,得到檔案控制代碼並賦值給一個變數   #2. 通過控制代碼對檔案進行操作   #3. 關閉檔案

 

二 、在python中

  #1. 開啟檔案,得到檔案控制代碼並賦值給一個變數 f=open('a.txt','r',encoding='utf-8') #預設開啟模式就為r  #2. 通過控制代碼對檔案進行操作 data=f.read()   #3. 關閉檔案 f.close()

三、 f=open('a.txt','r')的過程分析

  #1、由應用程式向作業系統發起系統調用open(...)  #2、作業系統開啟該檔案,並返回一個檔案控制代碼給應用程式   #3、應用程式將檔案控制代碼賦值給變數f

四 、強調!!!  

  #第一點: 開啟一個檔案包含兩部分資源:作業系統級開啟的檔案+應用程式的變數。在操作完畢一個檔案時,必須把與該檔案的這兩部分資源一個不落地回收,回收方法為: 1、f.close() #回收作業系統級開啟的檔案2、del f #回收應用程式級的變數 其中del f一定要發生在f.close()之後,否則就會導致作業系統開啟的檔案還沒有關閉,白白佔用資源, 而python自動的記憶體回收機制決定了我們無需考慮del f,這就要求我們,在操作完畢檔案後,一定要記住f.close() 雖然我這麼說,但是很多同學還是會很不要臉地忘記f.close(),對於這些不長腦子的同學,我們推薦傻瓜式操作方式:使用with關鍵字來幫我們管理上下文
1 with open('a.txt','w') as f: 2     pass 3 with open('a.txt','r') as read_f,open('b.txt','w') as write_f: 4     data=read_f.read()5     write_f.write(data)
二、 開啟檔案的模式
檔案控制代碼 = open('檔案路徑', '模式','字元編碼')

模式可以是以下方式以及他們之間的組合:

Character Meaning
‘r' open for reading (default)
‘w' open for writing, truncating the file first
‘a' open for writing, appending to the end of the file if it exists
‘b' binary mode
‘t' text mode (default)
‘+' open a disk file for updating (reading and writing)
‘U' universal newline mode (for backwards compatibility; should not be used in new code)
 #1. 開啟檔案的模式有(預設為文字模式):   r ,唯讀模式【預設模式,檔案必須存在,不存在則拋出異常】 
1 with open("duoduo.txt",mode='r',encoding=utf-8") as f:2     print(f.read())
  w,唯寫模式【不可讀;不存在則建立;存在則清空內容】 
1 with open("duoduo.txt",mode='w',encoding=utf-8") as f:2     print(f.write("duoduo666"))
  a, 之追加寫入模式【不可讀;不存在則建立;存在則只追加內容】 
1 with open("duoduo.txt",mode='a',encoding=utf-8") as f:2     print(f.write("77777777"))
三 、操作檔案的方法

  

未完待續。。。。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.