天天看點

打開檔案|學習筆記

開發者學堂課程【Python 語言基礎 3:函數、面向對象、異常處理:打開檔案】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/601/detail/8766

打開檔案

内容簡介

一、檔案

二、Open 傳回值

三、總結

一、檔案(file)

在我們的計算機裡一切皆是檔案,比如說 “01.異常.py” 這是一個文本檔案,電腦桌面上的所有圖示快捷方式也是檔案,随便一個軟體打開檔案所在位置會發現裡面是各種各樣的檔案,包括看的電影、圖檔,聽的音樂,所有在計算機裡存的東西都是檔案。我們可以手動的對這些檔案進行操作,同樣在 python 中也可以通過程式對檔案進行操作。

是以,這裡所說的檔案是指:

1、通過 python 程式對計算機中的各種檔案進行增删改查的操作。

2、檔案還有另一個名字叫做 i/o(input/output)input 是輸入,output 是輸出。注意這都是對我們人來講的,input 是指人通過程式從計算機中讀取資訊向人輸入,同樣,output 是指從人這裡把一些資訊輸出到檔案裡。

3、操作檔案的步驟:

①打開檔案

②對檔案進行各種操作(讀、寫),然後儲存

③關閉檔案

這是手工去操作一個檔案的步驟。同樣在 python 裡對檔案進行操作也需要經曆這三個步驟。

通過 python 建立一個檔案名叫 demo.txt 的檔案,檔案裡寫入 lorem 然後按下 tab 鍵回車會自動生成。

這個英文文本沒有任何意義,隻是一個測試排版的文本。

現在想要打開 demo.txt 的檔案,需要使用 python 的内接函數,找到文檔中的Library Reference,打開 Built-in Functions,找到 open(),找到函數

open(file, mode='r, uffering-g-1 encoding=None, errors -

None, newine=None, closefd= True, opener-None)

​ 複制粘貼進 python。這就是一個打開檔案的函數。

這裡 file 是要打開的檔案的名字(路徑)

這裡建立一個變量,來儲存檔案的名字:​

file

name=‘demo.txt’

​ 這時候直接用​

open(file

name

​)作為第一個參數傳進去,這就是打開file name對應的檔案。如何驗證檔案是不是打開呢?隻要不報錯就是打開了。方法是先改一個​

file

name=‘demo123.txt’

​執行會發現報錯了。

但是這個錯誤實際上跟file沒有任何關系,因為報的是文法的錯誤,是編碼的問題。報這個錯誤是因為一開始使用代碼時裡面有一個 ​

encoding=None

​,這 在 python中會被解析成要設定檔案的編碼,是以報錯。要避免這種報錯隻需要修改一下,加一個下劃線​

encoding

=None

​就可以了。這個時候執行封包件報的錯就是我們檔案的錯誤了。

報錯的原因是因為剛才把檔案的名給改成了 demo123.txt。檔案名修改到最開始的名字就可以正常打開了。是以以後打開檔案就用 open函數。

傳回一個對象,這個對象代表了目前打開的檔案。比如​

file

obj= open

(file

name)#

​打開 file name 對應的檔案。 直接​

print(file

obj)

​儲存列印會出現。

表明這個對象确實存在,已經打開了。如果目标檔案和目前檔案在同一級目錄下,則直接使用檔案名即可。如果不在同一級目錄下,比如建立一個檔案名叫 hello 位于上一級把 demo.txt 檔案移到 hello 裡,這個時候就必須使用完整的路徑:

File

name=‘hello/demo.txt’

​儲存執行才能夠找到并打開檔案。這裡要注意如果是同一級目錄下直接使用檔案名就可以,而不在同一級目錄中則需要把路徑加上。

在 w indows 裡表示一個路徑的時候應該用的是\,但是在這裡使用\的話會出現問題,因為 在 python 裡 \ 代表的是轉義字元。是以在 windows 系統使用路徑時,可以使用 / 代替\。或者可以使用 \\ 代替 \,或者也可以使用原始字元串。原始字元串就是在字元串前加r比如:

file

name=r‘hello\demo.txt

​這時候裡邊的轉義字元就會被忽略。

現在把 hello 檔案在往上移一級,​

file

name=r‘hello\demo.txt

​這個字元串就沒有效果了,是以表示路徑,可以使用..來傳回上一級目錄。

現在是在 code,需要先到 hello 裡是以:​

file name=‘../hello/demo.txt’

​。這裡..就表示需要從目前目錄出來也就是 code,出來後再去 hello 裡邊找demo.txt。儲存執行後就可以找到 demo.txt 檔案了。

如果目标檔案距離目前檔案比較遠,此時可以使用絕對路徑。

絕對路徑應該從磁盤的根目錄開始書寫,比如桌面上的快捷方式就需要打開檔案所在位置全部複制路徑:

file

name=‘D:\QQ\Bin\QQScLauncher.exe’

​ 注意這裡\需要改成/或者使用原始字元串加上 r。

這就是一個絕對根路徑,儲存執行也可以找到目标檔案。

如果檔案在目前目錄下直接寫檔案名,如果不在目前目錄下要寫路徑,如果不在路徑裡面用..傳回,如果絕對路徑比較遠,需要使用檔案的絕對路徑。