目錄
(五)檔案
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 ...