文件的做用python
將數據長期保存下來,在須要的時候使用瀏覽器
CPU | 內存 | 硬盤 |
---|---|---|
 |

|

|
文本文件函數
二進制文件編碼
在 計算機 中要操做文件的套路很是固定,一共包含三個步驟:spa
Python
中要操做文件須要記住 1 個函數和 3 個方法序號 | 函數/方法 | 說明 |
---|---|---|
01 | open | 打開文件,而且返回文件操做對象 |
02 | read | 將文件內容讀取到內存 |
03 | write | 將指定內容寫入文件 |
04 | close | 關閉文件 |
open
函數負責打開文件,而且返回文件對象read
/write
/close
三個方法都須要經過 文件對象 來調用open
函數的第一個參數是要打開的文件名(文件名區分大小寫)
read
方法能夠一次性 讀入 並 返回 文件的 全部內容close
方法負責 關閉文件
read
方法執行後,會把 文件指針 移動到 文件的末尾# 1. 打開 - 文件名須要注意大小寫 file = open("README") # 2. 讀取 text = file.read() print(text) # 3. 關閉 file.close()
提示3d
read
方法後,文件指針 會移動到 讀取內容的末尾
思考指針
read
方法,讀取了全部內容,那麼再次調用 read
方法,還可以得到到內容嗎?答案code
open
函數默認以 只讀方式 打開文件,而且返回文件對象語法以下:視頻
f = open("文件名", "訪問方式")
訪問方式 | 說明 |
---|---|
r | 以只讀方式打開文件。文件的指針將會放在文件的開頭,這是默認模式。若是文件不存在,拋出異常 |
w | 以只寫方式打開文件。若是文件存在會被覆蓋。若是文件不存在,建立新文件 |
a | 以追加方式打開文件。若是該文件已存在,文件指針將會放在文件的結尾。若是文件不存在,建立新文件進行寫入 |
r+ | 以讀寫方式打開文件。文件的指針將會放在文件的開頭。若是文件不存在,拋出異常 |
w+ | 以讀寫方式打開文件。若是文件存在會被覆蓋。若是文件不存在,建立新文件 |
a+ | 以讀寫方式打開文件。若是該文件已存在,文件指針將會放在文件的結尾。若是文件不存在,建立新文件進行寫入 |
提示對象
寫入文件示例
# 打開文件 f = open("README", "w") f.write("hello python!\n") f.write("今每天氣真好") # 關閉文件 f.close()
read
方法默認會把文件的 全部內容 一次性讀取到內存readline
方法readline
方法能夠一次讀取一行內容讀取大文件的正確姿式
# 打開文件 file = open("README") while True: # 讀取一行內容 text = file.readline() # 判斷是否讀到內容 if not text: break # 每讀取一行的末尾已經有了一個 `\n` print(text, end="") # 關閉文件 file.close()
目標
用代碼的方式,來實現文件複製過程
# 1. 打開文件 file_read = open("README") file_write = open("README[復件]", "w") # 2. 讀取並寫入文件 text = file_read.read() file_write.write(text) # 3. 關閉文件 file_read.close() file_write.close()
# 1. 打開文件 file_read = open("README") file_write = open("README[復件]", "w") # 2. 讀取並寫入文件 while True: # 每次讀取一行 text = file_read.readline() # 判斷是否讀取到內容 if not text: break file_write.write(text) # 3. 關閉文件 file_read.close() file_write.close()
Python
中,若是但願經過程序實現上述功能,須要導入 os
模塊序號 | 方法名 | 說明 | 示例 |
---|---|---|---|
01 | rename | 重命名文件 | os.rename(源文件名, 目標文件名) |
02 | remove | 刪除文件 | os.remove(文件名) |
序號 | 方法名 | 說明 | 示例 |
---|---|---|---|
01 | listdir | 目錄列表 | os.listdir(目錄名) |
02 | mkdir | 建立目錄 | os.mkdir(目錄名) |
03 | rmdir | 刪除目錄 | os.rmdir(目錄名) |
04 | getcwd | 獲取當前目錄 | os.getcwd() |
05 | chdir | 修改工做目錄 | os.chdir(目標目錄) |
06 | path.isdir | 判斷是不是文件 | os.path.isdir(文件路徑) |
提示:文件或者目錄操做都支持 相對路徑 和 絕對路徑
ASCII
編碼,UNICODE
編碼等Python 2.x 默認使用
ASCII
編碼格式
Python 3.x 默認使用UTF-8
編碼格式
ASCII
編碼256
個 ASCII
字符ASCII
在內存中佔用 1 個字節 的空間
8
個 0/1
的排列組合方式一共有 256
種,也就是 2 ** 8
UTF-8
編碼格式UTF-8
字符,涵蓋了 地球上幾乎全部地區的文字UTF-8
是 UNICODE
編碼的一種編碼格式Python 2.x 默認使用
ASCII
編碼格式
Python 3.x 默認使用UTF-8
編碼格式
utf-8
編碼來處理 python 文件# *-* coding:utf8 *-*
這方式是官方推薦使用的!
# coding=utf8
Python 2.x
中,即便指定了文件使用 UTF-8
的編碼格式,可是在遍歷字符串時,仍然會 以字節爲單位遍歷 字符串u
,告訴解釋器這是一個 unicode
字符串(使用 UTF-8
編碼格式的字符串)# *-* coding:utf8 *-* # 在字符串前,增長一個 `u` 表示這個字符串是一個 utf8 字符串 hello_str = u"你好世界" print(hello_str) for c in hello_str: print(c)