一.文件的基本操作
1.打開文件
在 python 中打開文件我們需要使用内置函數找到文件的路徑和文件的模式後就可得到文件對象。 encoding 是指定編碼格式,errors是忽略的意思表示強行打開。但如果強行打開就會出現亂碼
圖中有三個參數,第一個是 ‘test.txt’ ,它表示與我們所編碼的文件 test.py 處于同一文件下的文檔 test.txt
第二個是 ‘r’ ,它表示隻讀模式。第三個是所使用編碼模式,我們将寫完的東西進行保存一般都是以 utf-8 的形式保存。encoding 可以将字符串編碼成指定的編碼
1.路徑(第一個參數)
路徑有兩種,一種相對路徑,一種絕對路徑。
(1)相對路徑相對路徑是從文件本身出發,尋找文件。./ 表示當前目錄(點 斜杠),…/ 表示上級目錄(點點 斜杠),文件名/ 表示進入目錄。如下,我們從編碼所在文件出發./到上級目錄…/再輸入我們想要打開的文件名。
(2)絕對路徑
絕對路徑是指直接找到你所想要打開的文件的地址輸入到第一個參數裡就可以了。(圖片中的藍色字體複制粘貼即可)
##但這裡會有一個問題,在之前所學中我們知道 字母表示轉義的意思,\t表示制表符縮進的意思。這裡我們有兩種辦法可以解決。第一種就是在第一個參數前加上r,第二種是單斜杠變成雙斜杠。這兩種都是反轉義的意思。
2.文件的打開有五種模式。(第二個參數)
(1).隻讀模式(r)隻可以讀,但不可以寫。如果找不到文件會報錯。
(2)隻寫模式(w)隻可以寫不可以讀,無論有沒有文件,都會創建然後覆蓋。
(3)追加模式(a)隻可以寫,不可以讀,找不到文件會自動創建,如果有就不新建。
(4)疊加(b)疊加,二進制打開。b隻可與上面三種模式疊加,不可單獨使用。
(5)疊加,更新( )能夠讓我們的模式可以讀也可以寫,但不可單獨使用,需與前三種疊加使用。
###補充一下這裡的 b和 也可疊加,例如 ab wb ,但不可寫成aw,rw,ra
3.文件分類
(1)字符文件點擊記事本打開,凡是看得懂的都是字符文件——各種文本文檔。我們可以用 r,w,a 模式進行讀寫。
(2)字節文件點擊記事本打開,凡是看不懂的都是字節文件——圖片,音頻,視頻。我們隻能使用疊加b的方式打開二進制文件。像 rb,wb,ab。一般都是我們将圖片或視頻用記事本的形式打開造成的。
二.文件的寫入
1.write:寫文件直接調用write方法,write方法每次隻可以接受一個參數。如果想要一次寫入多個内容,那就需要使用writelines
2.flush:文件最開始寫入會寫入到内存中,隻有調用flush刷新到硬盤中才能保存到文件
3.close:關閉文件也會自動保存修改到文件中,如果沒有close,文件就沒有關閉,就無法對文件做出删除命令。
但在上圖中,flush 明顯是多餘的,因為close本身就會保存無需再加flush。
三.讀取文件
讀取文件時,會讀取光标之後的内容。所有我們要去查看指針的位置,因為一個字占三個字符,所有我們打印出來是十八個字符。(a模式光标默認定義在最後,a模式的write,會自動把光标設置最後去寫,r再設置的光标位置寫,會覆蓋)
1當文件讀取之後,可以調用 tell 方法查看文件中指針的位置。( file.tell() )
2.當指針在末尾時讀取不出内容,需要把指針移動到文件開頭。( file.seek(0))
3.一次讀取一行 ( readline )
4.一次讀取多行(readlines )讀取返回的是列表
##\n表示空格,假設我們想要讀取第二行可以用裡[1]來表示。
四.關閉文件
我們之前一直使用close關閉文件,但是with可以自動關閉文件,所有我們之後就來使用with。
1.with的格式是:with open(‘test.txt’,‘a ’,encoding=‘utf-8’) as file:
2.複制文件
讀取要複制的文件,寫入指定位置。(圖中 lo lp coco都可自主命名)
五.文件流(僅供了解,不多做講解)
如果想要存儲數據,讀,寫,但是又不想要持久化到硬盤,那麼可以使用文件流
六.目錄
我們需要導出 import os 模塊
1.獲取當前路徑(getcwd)
2.切換路徑(chdir)
3.查看文件和子目錄,默認是當前目錄(listdir)
4.創建文件夾 如果想要返回上一級創建。就加上 …/ (mkdir)
5.對文件夾改名字(rename)
6.創建多層目錄(makedirs)
7.删除文件(remove)
8.删除目錄( rmdir)
9. 調用系統命令(system) ###mspaint是畫圖的命令,回車後可直接調用畫圖工具(calc計算機)
10.路徑操作( path)### abspath 把相對路徑轉成絕對路徑
七.模塊和包
1.模塊:模塊就是 python 文件。
我們可以新建一個模塊(就是python文件)命名為son.py并在其中打印出 print(‘son model’),再回到我們使用的python文件中輸出 import son,F5運行,就會打印出模塊(son.py)中的内容了。
假設 son 文件中還存在兩個函數,但我們隻需要其中一個。但在導入模塊時會将模塊中的所有内容都導入,所有這個時候我們就需要部分導入了 from。。。import。。。。as。。。 from 後加導入的模塊,import 後加模塊中的函數或别的你所需要的東西,as 後叫你起的名字。(as不常用)導入 son 模塊中的 test1。
2.路徑的添加
(1)name 代表模塊的名字
如果是在當前文檔中打印就會出現__main__,但如果是導入的模塊中打印 __name__就會出現模塊本身的名字。
2.包
所謂的包,就是存放多個模塊的文件夾,并且其中會有__init__.py 這樣的文件。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!