python基礎知識(五)檔案

2021-09-18 01:54:32 字數 3698 閱讀 6491

目錄

(五)檔案

5.1檔案的讀取

5.2檔案的寫入

5.3檔案的追加

5.4檔案的修改

5.5其他操作

a.開啟檔案

#開啟指定位置檔案,絕對路徑

f = open('d:\測試檔案.txt',mode='r',encoding='utf-8')

content = f.read()

print(content)

f.close()

#在pycharm中開啟檔案,相對路徑

f = open('測試檔案.txt',mode='r',encoding='utf-8')

content = f.read()

print(content)

f.close()

b.唯讀:r,讀寫:r+,以二進位制格式開啟乙個檔案用於唯讀:rb

r 唯讀

f = open('測試檔案.txt',mode='r',encoding='utf-8')

content = f.read()

print(content)

f.close()

#先讀後寫,一開始游標在最前,讀完之後在最後+qwe

f = open('測試檔案1.txt',mode='r+',encoding='utf-8')

print(f.read())

f.write('qwe')

f.close()

#先寫後讀,游標一開始在最前,所以寫入的內容會覆蓋原內容,讓背後把剩餘內容讀出來

f = open('測試檔案1.txt',mode='r+',encoding='utf-8')

f.write('qwe')

print(f.read())

f.close()

f = open('測試檔案.txt',mode='rb') #以bytes型別開啟

content = f.read()

print(content)

f.close() #b'內容'

readline()與 readlines()

readline():只讀取一行

readlines():從檔案中讀取每一行,並將其儲存再乙個列表中

#檔案內容:123

456789

with open('測試檔案.txt',encoding='utf-8') as f:

print(f.readline()) #123

with open('測試檔案.txt', encoding='utf-8') as f:

for i in f.readlines(): #f.readlines = ['123','456','789']列印要取\n

print(i.strip())

'''123

456789

'''

只寫:w,寫讀:w+,以二進位制格式開啟乙個檔案用於只寫:wb

先清空再寫

#對於w:沒有此檔案就會建立檔案

f = open('測試檔案1.txt',mode='w',encoding='utf-8')

f.write('隨便寫點')

f.close()

#先將原始檔的內容全部清除,再寫。

f = open('測試檔案1.txt',mode='w',encoding='utf-8')

f.write('隨便打點')

f.close()

#以byte型別寫入

f = open('測試檔案1.txt',mode='wb')

f.write('隨便打點',encode=('utf-8'))

f.close()

清空再寫

f = open('測試檔案1.txt',mode='w+',encoding='utf-8')

f.write('aaa')

print(f.read()) #讀不到任何東西,游標已經移動到最後

f.close()

清空再寫

f = open('測試檔案1.txt',mode='w+',encoding='utf-8')

f.write('aaa')

f.seek(0) #把游標移到最前,讀取aaa

print(f.read())

f.close()

只追加:a,追加讀:a+,以二進位制格式開啟乙個檔案用於只追加:ab

#尾部追加哈哈

f = open('測試檔案1.txt',mode='a',encoding='utf-8')

f.write('哈哈')

f.close()

f = open('測試檔案1.txt',mode='a+',encoding='utf-8')

f.write('佳琪')

f.seek(0) #移動游標

print(f.read())

f.close()

檔案不修改,只能覆蓋 

#假裝修改

f = open('測試檔案.txt','w',encoding='utf-8')

f.write('未被修改')

f.close()

with open('測試檔案.txt',encoding='utf-8') as f1,open('測試檔案.bak','w',encoding='utf-8') as f2:

for i in f1:

if '未被修改' in i:

i = i.replace('未被修改','已修改')

f2.write(i)

import os

os.remove('測試檔案.txt') #刪除檔案

os.rename('測試檔案.bak','測試檔案') #改名

a.read()

1. 檔案開啟方式為文字模式時,代表讀取n個字元

2. 檔案開啟方式為b模式時,代表讀取n個位元組

b.seek()

seek(n)游標移動到n位置,注意:移動單位是byte位元組,所有如果是utf-8的中文部分要是3的倍數

移動到開頭:seek(0)

移動到結尾:seek(0,2) seek的第二個引數表示的是從哪個位置進行偏移,預設是0,表示開頭,1表示當前位置,2表示結尾

c. tell()

使用tell()可以幫我們獲取當前游標在什麼位置

d.另一種格式,不用close,可同時開啟多個檔案

with open('測試檔案.txt',mode='r',encoding='utf-8') as f,open('測試檔案.txt',mode='r',encoding='utf-8') as g:

content = f.read()

print(content)

e.字串----->encode------>bytes

bytes----->decode------> 字串

python基礎知識 五 檔案操作

f open 1.txt r 開啟檔案,沒有不建立 f open 1.txt w 開啟檔案,沒有則建立 有會覆蓋 f open 1.txt a 開啟檔案,沒有建立,有會追加。f.write 寫檔案 f.read 讀檔案 f.close 關閉檔案 f.closed檢查檔案是否關閉,關閉了返回true,...

python基礎(五) 檔案操作

檔案處理 1.在python中 1.開啟檔案,得到檔案控制代碼並賦值給乙個變數 f open a.txt r encoding utf 8 預設開啟模式就為r 2.通過控制代碼對檔案進行操作 data f.read 3.關閉檔案 f.close 2.f open a.txt r 過程分析 首先由應用...

Python學習五 檔案

with open pi digits.txt as file object contents file object.read print contents 其中,pi digits.txt 為同目錄下的文字檔案。關鍵字with在不再需要訪問檔案後將其關閉。在這個程式中,注意到我們呼叫了open ...