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
未完待續,連載中.....