Python基礎知識4:檔案操作,

來源:互聯網
上載者:User

Python基礎知識4:檔案操作,

檔案的知識:開啟檔案、操作檔案、關閉檔案


1、關於開啟檔案:

f.open('text','r') #r代表唯讀
f.open('text','w') #w代表唯寫,先清空源檔案的內容
f.open('text','x') #檔案存在即報錯,檔案不存在則建立檔案,並可寫入內容(即同w)
f.open('text','a')#a代表在源檔案末尾追加內容

案例1:讀檔案內容的程式

f=open('db','r')
data=f.read()
print(data)
f.close()

案例2:encoding限制檔案內容形式

#讀檔案內容出來,如果開啟檔案時出現亂碼,需要看下encoding對應的類型是否真錯
#比如text檔案中有漢字,則必須寫上encoding='utf-8'
f=open('text','r',encoding='utf-8')
data=f.read()
print(data)
f.close()

案例3:加b後,直接以位元組方式讀取檔案,不加b則以字串形式讀取

f=open('db','rb')#當r為rb時,會以位元組方式讀取檔案
data=f.read()
print(data,type(data))
f.close()

案例4:當傳遞內容為字元時,需要通過bytes轉化

f=open('db','ab')#會以位元組方式追加
f.write(bytes("hello",encoding='utf-8'))#當傳遞內容為字元時,需要用bytes轉化
f.close()

案例5:r+即可讀又可寫,同時不會覆蓋檔案,會在末尾追加內容

f=open('db','r+',encoding='utf-8')#即可讀又可寫
data=f.read()
print(data)
f.write("hello")#在末尾覆蓋
f.close()

執行結果:

另外還有a+(實現讀和寫,但寫的時候會永遠在最後追加),w+(實現寫和讀,但會清空源檔案內容後在寫),因此用的最多的是r+


2、關於檔案的操作

seek()#將按位元組形式讀取指標位置,中文代表3個位元組
tell()#擷取當前指標的位置,按位元組形式

案例6:調整指標位置

f=open('db','r+',encoding='utf-8')#即可讀又可寫
data=f.read(1)#如果開啟模型無b,則read按字元讀取,如果有b,則按位元組方式,比如中文會佔3個位元組
print(f.tell())#tell()當前指標所在的位置,無論是否有b,均按位元組形式
f.seek(f.tell())#可調整當前指標的位置
f.write("888")
f.close()

案例7:flush#強刷,當沒有結束程式時,需要把寫的內容強制刷進記憶體

f=open('db','a')
f.write("123")
f.flush()#強制把123內容寫入硬碟中
input("hhh")

案例8:truncate,用來截斷資料

f=open('db','r+',encoding='utf-8')#即可讀又可寫
f.seek(3)#調整到3位元組
f.truncate()#3位元組後的所有內容全部清空
f.close()

其他:readline,僅讀取一行


3、關閉檔案

可以用f.close(),還可以用with執行完自動關閉

with open('db') as f:
input("hhh")

案例9:讀取第一個檔案的前世行,並寫入到第二個檔案

with open('db','r')as f1,open('db2','w')as f2:
times=0
   for line in f1:#一行一行的讀取
       times+=1
       if times<=10:#控制次數
           f2.write(line)
else:
break

案例10:修改一個檔案,替換部分內容

with open('db','r')as f1,open('db2','w')as f2:
for line in f1:
new_str=line.replace("aaa","cc")
f2.write(new_str)


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.