Python從零開始系列連載(32)——Python文件操作(下)

前言

前文傳送門:

Python從零開始系列連載(1)——安裝環境

Python從零開始系列連載(2)——jupyter的常用操作(上)

Python從零開始系列連載(3)——jupyter的常用操作(中)

Python從零開始系列連載(4)——jupyter的常用操作(下)

Python從零開始系列連載(5)——Python的基本數據類型(上)

Python從零開始系列連載(6)——Python的基本數據類型(中)

Python從零開始系列連載(7)——Python的基本數據類型(中二)

Python從零開始系列連載(8)——Python的基本數據類型(下)

Python從零開始系列連載(9)——Python的基本運算和表達式(上)

Python從零開始系列連載(10)——Python的基本運算和表達式(中)

Python從零開始系列連載(11)——Python的基本運算和表達式(中二)

Python從零開始系列連載(12)——Python的基本運算和表達式(下)

Python從零開始系列連載(13)——Python程序的基本控制流程(上)

Python從零開始系列連載(14)——Python程序的基本控制流程(中)

Python從零開始系列連載(15)——Python程序的基本控制流程(中二)

Python從零開始系列連載(16)——Python程序的基本控制流程(下)

Python從零開始系列連載(17)——Python特色數據類型(列表)(上)

Python從零開始系列連載(18)——Python特色數據類型(列表)(中)

Python從零開始系列連載(19)——Python特色數據類型(列表)(下)

Python從零開始系列連載(20)——Python特色數據類型(元組)(上)

Python從零開始系列連載(21)——Python特色數據類型(元組)(下)

Python從零開始系列連載(22)——Python特色數據類型(字典)(上)

Python從零開始系列連載(23)——Python特色數據類型(字典)(下)

Python從零開始系列連載(24)——Python特色數據類型(集合)(上)

Python從零開始系列連載(25)——Python特色數據類型(集合)(下)

Python從零開始系列連載(26)——Python特色數據類型(函數)(上)

Python從零開始系列連載(27)——Python特色數據類型(函數)(中)

Python從零開始系列連載(28)——Python特色數據類型(函數)(下)

Python從零開始系列連載(29)——Python文件操作(上)

Python從零開始系列連載(30)——Python文件操作(中)

Python從零開始系列連載(31)——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創建一個文件,寫一首(手)詩(濕)並且讀出來

(阿喂!是用Python讀,不是讓你用嘴讀!)

現在還堅持再看連載學習的你們真的很棒棒!

入門部分已經學完大部分啦!加油

作者:王大偉 Python愛好者社區唯一小編,請勿轉載,謝謝。

博客專欄:王大偉-一個數據分析菜鳥

配套視頻教程:1小時破冰入門Python edu.hellobi.com/course/

公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。

推薦閱讀:

TAG:Python | Python入門 | Python教程 |