目錄
01.文件的基本操作
1.1 操作文件
在計算機中操作文件的套路是分為三個步驟:
1)打開文件
2)讀/寫文件
3)關閉文件
1.2 操作文件的函數/方法
序號 | 函數/方法 | 說明 |
---|---|---|
1 | open |
打開文件,並且返回文件操作對象 |
2 | read |
將文件讀取到內存 |
3 | write |
將指定內容寫入文件 |
4 | close |
關閉文件 |
open
只負責打開文件,並且返回文件對象
read/write/close
三個方法都需要通過文件對象來調用
1.3 讀取文件
1.3.1 read方法(一次性讀取)
read
方法讀取文件需要注意一下幾點:
1)open
函數的第一個參數是要打開的文件名(文件名區分大小寫)
2)read
方法一次性讀取文件所有內容並返回
3)close
只負責關閉文件,如果忘記關閉文件,則會造成資源浪費或者影響后續對文件的訪問
# 打開文件,指定編碼格式,避免無法讀取中文
f = open("a.txt",encoding="utf-8")
# 讀取文件
content = f.read()
print(content)
# 關閉文件
f.close()
小提示:
開發過程中,通常會先編寫 打開 和 關閉 的代碼,再編寫中間針對文件的 讀/寫 操作!
第一次打開文件的時候,文件指針指向文件的開始位置,當執行了read
方法后,指針會移動到文件末尾。
1.3.2 readline方法(按行讀取)
read
方法是一次性將文件讀取到內存,然后返回一個文件對象,如果文件特別大的話,那么對內存的占用會非常嚴重,所以有了readline
方法
readline
方法一次性讀取一行內容- 方法執行后,會把文件指針移動到下一行,准備再次讀取
大文件的正確讀取方式:
# 打開文件
f = open("a.txt",encoding="utf-8")
# 讀取大文件
while True:
line = f.readline()
if not line:
break
# 每讀取一行的末尾已經有了一個 \n
print(line,end="")
# 關閉文件
f.close()
2.4 打開文件的方式
默認情況下:open
函數是以只讀方式打開文件。
語法格式:
f = open("文件名","訪問方式",encoding="編碼格式")
訪問方式 | 說明 |
---|---|
r | 以只讀方式打開文件。文件的指針將會放在文件的開頭,這是默認模式。如果文件不存在,拋出異常 |
w | 以只寫方式打開文件。如果文件存在會被覆蓋。如果文件不存在,創建新文件 |
a | 以追加方式打開文件。如果該文件已存在,文件指針將會放在文件的結尾。如果文件不存在,創建新文件進行寫入 |
r+ | 以讀寫方式打開文件。文件的指針將會放在文件的開頭。如果文件不存在,拋出異常 |
w+ | 以讀寫方式打開文件。如果文件存在會被覆蓋。如果文件不存在,創建新文件 |
a+ | 以讀寫方式打開文件。如果該文件已存在,文件指針將會放在文件的結尾。如果文件不存在,創建新文件進行寫入 |
小提示
頻繁的移動文件指針,會影響文件的讀寫效率,開發中更多的時候會以 只讀、只寫 的方式來操作文件
實戰演練--寫入文件實例
# 寫模式,打開文件
f = open("b.txt","w",encoding="utf-8")
# 寫入內容
f.write("今天天氣真好!\n")
f.write("我們出去釣魚吧!")
# 關閉文件
f.close()
02.文件的復制
2.1 小文件的復制
小文件的復制思路是:打開一個文件,全部讀取后寫入到另外一個文件
# 打開讀與寫的文件
file_read = open("b.txt",encoding="utf-8")
file_write = open("c.txt","w",encoding="utf-8")
# 讀取文件
text = file_read.read()
file_write.write(text)
# 關閉文件
file_read.close()
file_write.close()
2.2 大文件的復制
大文件的復制思路是:打開一個文件,逐行邊讀邊寫。
# 打開讀與寫的文件
file_read = open("b.txt",encoding="utf-8")
file_write = open("c.txt","w",encoding="utf-8")
# 讀取文件
while True:
line = file_read.readline()
if not line:
break
file_write.write(line)
# 關閉文件
file_read.close()
file_write.close()