10min 学会Python 文件操作,我只看了这一篇文章
文章目錄
- 🌕1、文件是什么?
- 🌕2、文件路徑
- 🥝2.1 絕對路徑和相對路徑
- 🌕3、文件操作
- 🥝3.1 打開文件
- 🥝3.2 讀文件
- 🥝3.3 寫文件
- 🥝3.4 關閉文件
🌕1、文件是什么?
平時,生活中我們見到的電影(MP4)、歌曲(MP3)、圖片(JPG)、文本(txt)、表格(xlsx)…都可以被稱為 文件。
這些文件的格式和文件里面的內容可能不同,但是他們有一個共同特點:
數據都是保存在硬盤上的!!!
馮諾依曼體系:
CPU(運算器和控制器)、存儲器、輸入設備、輸出設備
存儲器 可以分為 內存和外存,
外存典型的就是硬盤
變量存儲在內存中,文件存儲在硬盤中
內存和硬盤的區別:
硬盤上存儲的數據是以文件的形式來組織的~
注:文件夾(目錄)也是一種特殊的文件 -> 目錄文件
🌕2、文件路徑
D:\Program Files\Tencent\QQ\Bin\QQ.exe
上述是小戴電腦中 qq.exe 這個文件的位置,
我們把這一層層的目錄構成的字符串,稱為 “文件的路徑”
知道了文件路徑,就可以知道這個文件在硬盤上的詳細位置,也就可以進一步知道這個文件里都有啥~ 方便使用這個文件~
文件路徑也可以視為是 文件 在硬盤上的標識
每個文件對應的路徑是唯一的
目錄名之間,使用 \ 來分割,使用 / 其實也行
🥝2.1 絕對路徑和相對路徑
絕對路徑:
指的是絕對位置,完整地描述文件位置的路徑,通常是從盤符開始的路徑
比如:D:\Program Files\Tencent\QQ\Bin\QQ.exe
相對路徑:
是從當前文件所在的文件夾開始的路徑
- QQ.exe:是在當前文件夾查找 QQ.exe 文件
- ./QQ.exe:也是在當前文件夾里查找QQ.exe文件, ./ 表示的是當前文件夾,可以省略
- ../QQ.exet:從當前文件夾的上一級文件夾里查找 QQ.exe 文件。../ 表示的是上一級文件夾
- Bin\QQ.exe,在當前文件夾里查找Bin這個文件夾,并在這個文件夾里查找 QQ.exe文件
路徑書寫的三種方式
-
\\ (正斜杠容易與轉義字符混淆)
file = open(‘D:\Program Files\Tencent\QQ\Bin\QQ.exe’) -
r'\' (推薦)
file = open(r’D:\Program Files\Tencent\QQ\Bin\QQ.exe’) -
'/'(推薦)
file = open(‘D:/Program Files/Tencent/QQ/Bin/QQ.exe’)
🌕3、文件操作
🥝3.1 打開文件
先在自己的電腦 E盤上建立一個叫做 “文本” 的目錄,然后再目錄底下新建一個 “test.txt” 文件
打開方式:
- r 表示 read,按照讀方式打開
- w 表示 write,按照寫方式打開
- a 表示 append,也是寫方式打開,把內容寫到原有文件內容的末尾,即 “追加” 的意思
如果準備按照讀方式打開的文件不存在的時候,就拋出了文件沒找到的異常
open 函數 的返回值是一個 文件對象
文件的內容是在硬盤上的,此處的文件對象,則是內存上的一個變量~ 后續讀寫文件操作,都是拿著這個文件對象來進行操作的~
🥝3.2 讀文件
讀文件內容使用 r 的方式打開文件,使用 read 方法完成讀操作,參數表示 “讀取幾個字符”
f = open('E:/文本/test.txt', 'r') result = f.read(2) print(result) f.close()read() 全部讀取出來
readline() 讀取一行
f = open('E:/文本/test.txt', 'r', encoding='utf8') print(f.readline().strip()) # 小戴真棒 print(f.readline()) # 小戴會更加棒\n f.close()readlines() 返回一個列表,列表中的每個元素是原文件的每一行
f = open('E:/文本/test.txt', 'r', encoding='utf8') list = f.readlines() print(list) # ['小戴真棒\n', '小戴會更棒'] f.close()for 循環讀取。 文件句柄是一個迭代器。特點是每次循環只在內存中占一行的數據,非常節省內存
f = open('E:/文本/test.txt', 'r', encoding='utf8') for line in f:print(line.strip()) f.close()注意:
實際開發的時候需要保證,文件內容的編碼方式和代碼中操作文件的編碼方式要匹配
此處,我們使用的方法,是讓代碼按照 utf 8 來進行處理,相比于 gbk,utf8 是使用更廣泛的編碼方式
🥝3.3 寫文件
文件打開之后,就可以寫文件了
- 寫文件,要使用寫方式打開,open 第二個參數設為 'w'
- 使用 write 方法寫入文件
用記事本打開文件之后,即可看到文件修改后的內容
如果使用 'r' 方式打開文件,則寫入時會拋出異常
使用 'w' 打開文件,就會清空文件原有的數據, 那咱們想要在原本數據基礎上添加數據,該怎么辦呢?
使用 a 可以實現 “追加寫”,此時原有的內容不變,寫入的內容會存在于之前文件內容的末尾
如果文件對象已經被關閉,意味著系統中和該文件相關的內容資源已經釋放了,強行去寫,就會出異常
🥝3.4 關閉文件
使用 close 方法關閉已經打開的文件
f.close()一個程序能同時打開的文件個數,是存在上限的
使用完畢的文件要記得及時關閉
打開文件,其實是在申請一定的系統資源,不再使用文件的時候,資源就應該及時釋放,否則就可能造成文件資源泄露,進一步的導致其他部分的代碼無法順利打開文件了~
文件資源泄露,其實是一個很重要的問題,不會在第一時間暴露出來,而是在不知情時給進行釋放~
Python 有個重要的機制—— 垃圾回收機制(GC),自動的把不使用的變量,給進行釋放,可以讓我們一定程度上避免上述問題,但是也不能完全依賴自動釋放機制,因為自動釋放不一定及時~
總結
以上是生活随笔為你收集整理的10min 学会Python 文件操作,我只看了这一篇文章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网站建设费用要多少?这些内容要了解
- 下一篇: 马云收购UC优视究竟是向谁宣战