計算機中的文件,就是存儲在某種長期儲存設備上的一段數據流 編輯器
計算機中的文件,能夠在須要的時候使用ide
文本文件函數
可使用文本編輯器查看編碼
本質上仍是二進制文件指針
二進制文件code
保留的內容不能直接查看,而是提供給其餘軟件查看視頻
圖片、音頻、視頻等都是二進制文件blog
打開文件圖片
讀寫文件內存
關閉文件
函數 | 說明 |
---|---|
fp.read([size]) | size爲讀取的長度,以byte爲單位 |
fp.readline([size]) | 讀一行,若是定義了size,有可能返回的只是一行的一部分 |
fp.readlines([size]) | 把文件每一行做爲一個list的一個成員,並返回這個list |
fp.write(str) | 把str寫到文件中,write()並不會在str後加上一個換行符 |
p.writelines(seq) | 把seq的內容所有寫到文件中(多行一次性寫入) |
fp.close() | 關閉文件 |
fp.flush() | 把緩衝區的內容寫入硬盤 |
fp.fileno() | 返回一個長整型的文件標籤 |
fp.tell() | 返回文件操做標記的當前位置,以文件的開頭爲原點 |
fp.next() | 返回下一行,並將文件操做標記位移到下一行 |
fp.seek(offset[,whence]) | 將文件打操做標記移到offset的位置。這個offset通常是相對於文件的開頭來計算的,通常爲正數, whence能夠爲0表示從頭開始計算,1表示以當前位置爲原點計算。2表示以文件末尾爲原點進行計算 |
f = open('manage.py','r',encoding='utf-8') print(f.tell()) text = f.read() print(text) f.close()
文件指針表示從哪一個位置開始讀取數據
第一次打開文件時,指針指向文件的開始位置
當執行了read方法後,指針指向文件的末尾,再次調用不會讀取到任何內容
模式 | 說明 |
---|---|
r | 以只讀方式打開文件,文件的指針將會放在文件的開頭,這是默認模式,若是文件不存在,拋出異常 |
w | 以只寫方式打開文件,若是文件存在會被覆蓋,若是文件不存在,建立新文件 |
a | 以追加方式打開文件,若是該文件已存在,文件指針將會放在文件的結尾,若是文件不存在,建立新文件進行寫入 |
r+ | 以讀寫方式打開文件,文件的指針將會放在文件的開頭,若是文件不存在,拋出異常 |
w+ | 以讀寫方式打開文件,若是文件存在會被覆蓋,若是文件不存在,建立新文件 |
a+ | 以讀寫方式打開文件,若是該文件已存在,文件指針將會放在文件的結尾,若是文件不存在,建立新文件進行寫入 |
read方法默認會把文件的全部內容一次性讀入到內存中
若是文件過大,對內存的佔用很是恐怖
readline方法能夠一次讀取一行內容
方法執行後,會把文件的指針指向下一行
小文件複製
打開一個文件,讀取所有內存,並寫入到另外一個文件中
# 1. 打開文件 file_read = open("README") file_write = open("README.bak", "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.bak", "w") # 2. 讀取並寫入文件 while True: # 每次讀取一行 text = file_read.readline() # 判斷是否讀取到內容 if not text: break file_write.write(text) # 3. 關閉文件 file_read.close() file_write.close()
在終端/資源管理器、 中能夠執行常規的文件/目錄管理操做 ,若是但願經過代碼來實現,須要導入os模塊
方法 | 說明 | 示例 |
---|---|---|
rrename | 重命名文件 | os.rename(文件名) |
remove | 刪除文件 | os.remove(文件名) |
方法 | 說明 | 示例 |
---|---|---|
listdir | 目錄列表 | os.listdir(目錄名) |
mkdir | 建立目錄 | os.mkdir(目錄名) |
rmdir | 刪除目錄 | os.rmdir(目錄名) |
getcwd | 獲取當前目錄 | os.getcwd() |
chdir | 修改工做目錄 | os.chdir(目標目錄) |
path.isdir | 判斷是不是文件 | os.path.isdir(文件路徑) |
with open("demo","r",encoding="utf-8") as f: #自動關閉並釋放文件資源 for line in f: print(line) with open("demo","r",encoding="utf-8") as f,\ open("demo.bak","w",encoding="utf-8") as f2: for line in f: print(line) f2.write(line)