python文件操作

文件操作介紹

  • <1>什么是文件
    image.png
  • <2>文件的作用
    使用文件的目的:保存數(shù)據(jù)存放在磁盤

就是把一些存儲存放起來,可以讓程序下一次執(zhí)行的時候直接使用,而不必重新制作一份,省時省力

文件的打開與關閉

  • <1>打開文件
    在python,使用open函數(shù),可以打開一個已經(jīng)存在的文件,或者創(chuàng)建一個新文件
    open(文件名,訪問模式)
    示例如下:

    image.png

  • <2>關閉文件
    close( )
    示例如下:
    新建一個文件,文件名為:test.txt

    f = 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()

結果演示:
image.png

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

結果演示:


image.png

注意:
如果文件不存在那么創(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)象
image.png

注意:
如果用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. 文件的打開 以寫入的方式新建文件

image.png

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

image.png
image.png

3.關閉文件

image.png

4.讀取文件

image.png

5.處理亂碼方式

image.png

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

image.png

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

image.png

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

image.png
image.png

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

image.png

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

image.png
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容