文件操作介紹
-
<1>什么是文件
image.png -
<2>文件的作用
使用文件的目的:保存數(shù)據(jù)存放在磁盤
就是把一些存儲存放起來,可以讓程序下一次執(zhí)行的時候直接使用,而不必重新制作一份,省時省力
文件的打開與關閉
-
<1>打開文件
在python,使用open函數(shù),可以打開一個已經(jīng)存在的文件,或者創(chuàng)建一個新文件
open(文件名,訪問模式)
示例如下:
image.png -
<2>關閉文件
close( )
示例如下:
新建一個文件,文件名為:test.txtf = open('test.txt', 'w')
關閉這個文件
f.close()
文件的讀寫
-
<1>寫數(shù)據(jù)(write)
使用write()可以完成向文件寫入數(shù)據(jù)
結果演示:新建一個文件 file.py,向其中寫入如下代碼:(pycharm環(huán)境)
f = open('test.txt', 'w')
f.write('hello world, i am here!')
f.close()

新建一個文件 file.py,向其中寫入如下代碼:(pycharm環(huán)境)
f = open('test.txt', 'w')
f.write('hello world, i am here!')
f.close()
結果演示:

注意:
如果文件不存在那么創(chuàng)建,如果存在那么就先清空,然后寫入數(shù)據(jù)
-
<2>讀數(shù)據(jù)(read)
使用read(num)可以從文件中讀取數(shù)據(jù),num表示要從文件中讀取的數(shù)據(jù)的長度(單位是字節(jié)),如果沒有傳入num,那么就表示讀取文件中所有的數(shù)據(jù)
新建一個文件file_read_test.py,向其中寫入如下代碼:
f = open('test.txt', 'r')
content = f.read(5) # 最多讀取5個數(shù)據(jù)
print(content)
print("-"*30) # 分割線,用來測試
content = f.read() # 從上次讀取的位置繼續(xù)讀取剩下的所有的數(shù)據(jù)
print(content)
f.close() # 關閉文件,這個可以是個好習慣哦
運行現(xiàn)象
注意:
如果用open打開文件時,如果使用的"r",那么可以省略,即只寫 open('test.txt')
如果沒有文件,打開報錯,存在該文件才能操作
如果文件中存在中文顯示,會出現(xiàn)亂碼需要添加encoding='utf-8'
open(‘test.txt’,”r”, encoding='utf-8')
- <3>讀數(shù)據(jù)(readlines)
就像read沒有參數(shù)時一樣,readlines可以按照行的方式把整個文件中的內(nèi)容進行一次性讀取,并且返回的是一個列表,其中每一行的數(shù)據(jù)為一個元素
demo:
f = open('test.txt', 'r')
content = f.readlines()
print(type(content))
i=1
for temp in content:
print("%d:%s" % (i, temp))
i += 1
f.close
- <4>讀數(shù)據(jù)(readline)
f = open('test.txt', 'r')
content = f.readline()
print("1:%s" % content)
content = f.readline()
print("2:%s" % content)
f.close()
- <4>可寫(a)
f = open('test.txt', ‘a(chǎn)')
f.write("11wswsw")
f.close()
(可寫)形式打開文件,如果文件不存在則創(chuàng)建并從頭添加寫入的內(nèi)容,存在則原有數(shù)據(jù)后追加數(shù)據(jù),
調(diào)用read()會一次性讀取文件的全部內(nèi)容,如果文件有10G,內(nèi)存就爆了,所以,要保險起見,可以反復調(diào)用read(size)方法?每次最多讀取size個字節(jié)的內(nèi)容。
另外,調(diào)用readline()可以每次讀取一行內(nèi)容,調(diào)用readlines()一次讀取所有內(nèi)容并按行返回list?因此,要根據(jù)需要決定怎么調(diào)用。如果文件很小,read()一次性讀取最方
便;如果不能確定文件大小,反復調(diào)用read(size)比較保險;如果是配置文件,調(diào)用readlines()最方便
二進制文件的讀寫
- <1>讀數(shù)據(jù)(rb)
with open("1.jpg","rb") as rf:
res = rf.read()
print(res)
第二種讀取文件的方式(不需要手動關閉文件)
with open("文件","讀取模式") as rf:
操作
注意:
如果沒有文件,打開報錯,存在該文件才能操作
- <1>讀數(shù)據(jù)和寫文件(rb,wb)
with open("1.jpg","rb") as rf:
res = rf.read()
with open("textjpg.jpg", "wb") as wf:
res = wf.write(res)
print(res)
結合使用看效果
文件與文件夾的相關操作
文件的相關操作
有些時候,需要對文件進行重命名、刪除等一些操作,python的os模塊中都有這么功能
1. 文件重命名
os模塊中的rename()可以完成對文件的重命名操作
rename(需要修改的文件名, 新的文件名)
import os
os.rename("畢業(yè)論文.txt", "畢業(yè)論文-最終版.txt")
2. 刪除文件
os模塊中的remove()可以完成對文件的刪除操作
remove(待刪除的文件名)
import os
os.remove("畢業(yè)論文.txt")
3. 創(chuàng)建文件夾
import os
os.mkdir("張三")
4. 獲取當前目錄
import os
os.getcwd()
1. 文件的打開 以寫入的方式新建文件

2.寫入數(shù)據(jù)


3.關閉文件

4.讀取文件

5.處理亂碼方式

6.讀取數(shù)據(jù),讀取每一行的數(shù)據(jù)

7.循環(huán)讀取每一行的數(shù)據(jù)

8.寫入數(shù)據(jù) 以追加的方式寫入


9.二進制文件讀數(shù)據(jù)

10.二進制文件的讀寫數(shù)據(jù)


