1. 程式人生 > >Python從零開始系列連載(22)——Python檔案操作(下)

Python從零開始系列連載(22)——Python檔案操作(下)

檔案寫入

之前講過了檔案開啟建立和關閉,我們接著來談談檔案寫入

之前我們說了使用open()加上檔案的絕對路徑或者相對路徑可以開啟檔案

這裡我們講一個更簡單的方法

我們匯入os模組

os模組是和作業系統相關的模組

在Python中這樣操作:

這段程式碼指出了當前的工作目錄

我們在學習資料.txt中加入如下內容,並且儲存

我們在Python中開啟這個檔案:

因為之前指出了當前目錄,所以可以給出相對路徑即可(學習資料.txt在當前的工作路徑)

我們使用read()方法可以讀取文字內容

我們還可以使用write()方法寫入內容:

報錯啦!這不科學啊!小明,你來解釋一下!

小明:老溼,是不是你的文字儲存了什麼不健康的資訊?

小明,你不要把自己的經歷經驗強加給別人!

小紅:老師,上節課說過,預設的開啟模式是 r  (只讀),所以不能寫入.

嗯,小紅說的對,我們修改一下,首先關閉文件

此時我們開啟該txt:

內容已經寫進去了!

我們在Python中讀出來:

如果再次讀取呢?

發現讀出來的內容為空!

解釋一下,這裡的read()方法相當於讀取全部內容,如果讀完內容,再次讀取時候,書籤已經在文章末尾,再次往後讀當然沒有內容啦~

如果我只想讀取一行呢?

文字一共兩行,如果讀取完最後一行,再次讀取和上面的read()一樣,當然沒內容啦~

如果我想讀取多行呢?

小紅:老師,可以使用迴圈!

很好,我們試試!

可是為什麼只有第二句被讀出來了呢?

因為while中的判斷已經執行了一次readline()

而在print()中的readline()執行讀出的是第二句

當然,我們可以換成for迴圈:

小明:老溼!如果你不知道有多少行呢?你這樣指定讀取兩次算是作弊!

小明這個問題提的好!我們這裡引進一個方便的方法:

readlines()方法將每行內容作為列表元素,返回的是一個列表

小明:這個看起來不舒服啊,老溼給改改唄!

小紅:老師,我知道怎麼改!

小紅學得很好!

其實,這個還能改的更有派森特色!你們知道怎麼改麼?

【小明和小紅均搖頭

是時候展現真正的技術了!

小明:老溼,我看懂了!你用的列表生成式,可是為啥你要加個 g = ?

小明今天的問題提的都很好啊!如果不加,我們看看內容

會返回列表,而這個列表的元素是None,因為print( ) 函式作為列表的元素是沒返回值的

小明:老溼,你說的這個不好理解啊

好的,我們舉個栗子:

將print()賦值給 i

我們列印 i 發現是None

小明:哦哦哦哦哦~我懂了!

下課

有需要Python學習資料的小夥伴嗎?小編整理【一套Python資料、原始碼和PDF】,感興趣者可以加學習群:548377875,反正閒著也是閒著呢,不如學點東西啦~~

人生苦短,我選Python

未完待續,連載中.....