python-IO

IO即input、output,也就是輸入輸出,比如文件內容的展示(輸出),編輯文件內容(輸入)。

1、文件讀取

打開文件:

輸入路徑和打開模式,即可打開一個文件,這裡以只讀模式打開文件,如果你嘗試打開一個不存在的文件,那麼會報錯【FileNotFoundError】:

讀取文件內容:file.read()

關閉文件:

打開的文件都要關閉才行,不然會佔用系統資源,就像你電腦窗口開多了,電腦就會卡。

文件讀寫時都有可能產生IOError,導致後面的 file.close() 代碼不會執行,需要進行錯誤處理:

如果不想總是手動調用close方法關閉打開的文件,使用with可以調用close方法處理文件關閉:

read()是一次性把內容全部讀取出來,而readlines()則是以集合的形式獲取每一行的數據,遍歷可以逐行輸出內容:

文本內換行會影響輸出的結果,使用strip()可以處理這個問題:

對於二進位文件的讀取,比如圖片、視頻等等,使用rb模式打開文件:

我們還可以指定讀取內容的時候,按照什麼編碼格式讀取:

2、文件寫入:

以w模式打開文件:

這樣我們通過write()即可寫入內容,寫二進位文件的話需要以wb打開文件。

我們驗證下,剛才是否寫入內容了:

3、StringIO與BytesIO

StringIO可以讓我們像文件讀寫那樣操作字元串:

BytesIO可以讓我作二進位的讀寫:

寫入的不是str,而是經過UTF-8編碼的bytes

4、os模塊

獲取操作系統類型:

獲取系統中的環境變數:

查找當前目錄的絕對路徑:

創建一個新目錄(如果目錄已經存在,那麼會報錯)【FileExistsError】:

刪除一個目錄(如果目錄不存在,那麼會報錯)【FileNotFoundError】:

合併路徑:

拆分路徑:

獲取文件擴展名:

合併、拆分路徑的函數並不要求目錄和文件要真實存在,它們只對字元串進行操作。

對文件進行重命名 #找不到文件時會報錯【FileNotFoundError】:

列出當前目錄下所有的目錄:

列出所有的py文件,其實和上面的原理是一樣的:

超級簡潔的寫法:

寫完,搞定~~
推薦閱讀:

Python 會不會替代 MATLAB?
給妹子講python--15迭代環境
Scrapy爬蟲框架教程(四)-- 抓取AJAX非同步載入網頁
【談談智商稅】我究竟該怎麼學Python

TAG:Python | Python入门 | Python教程 |