f = open ('H:\\呵呵.txt',encoding='utf-8',mode='r')
s = f.read
print(s)
f.close
f:變量,f_obj,file,f_handler,...檔案句柄。
open 是windows的系統功能,
windows預設編碼方式:gbk,linux預設編碼方式utf-8。
f.close()
流程:打開一個檔案,産生一個檔案句柄,
對檔案句柄進行操作,關閉檔案。
讀的幾種方式
1. f = open('H:\\呵呵.txt',encoding = 'utf-8','r')
s=f.read
print(s)
f.close()
這種是全部讀出來
2. f = oepn('H:\\呵呵.txt',endoding='utf-8','r')
s = f.readline
f.close() 一行一行的讀 每print一次就列印一行
3. f = open('H:\\呵呵.txt',encoding='utf-8' , 'r')
s = f.readlines
print(s) 把檔案的每一行作為一個元素(包括換行符)放到一個清單中
4. f = open('H:\\呵呵.txt',encoding = 'utf-8','r')
s = f.read(int) (參數填數字 )
print(S) 列印字元的個數
f = open('H:\\呵呵.txt','rb')
s = f.read(int) (參數填數字 )
print(S) 列印位元組的個數
f.close()
5. f = open('H:\\呵呵.txt',encoding = 'utf-8','r')
fpr i in f:
print(i.strip()) 循環列印每一行
在讀非文字的檔案時候用rb
f = open('H:\\呵呵.txt','rb')
s = f.read()
print(s)
寫的方式
如果我沒有這個檔案夾就建立這個檔案夾寫入内容,如果有這個檔案夾 就清空檔案内容 然後再添加
1. f = open('H:\\呵呵.txt',encoding = 'utf-8','w')
f.write('kkkk')
print(f)
f.close()
寫入byte資料類型的内容
f = open('H:\\呵呵.txt','wb')
f.write('kkkk'.encoding('utf-8'))
print(f)
f.close()
a 有檔案就追加内容 沒有檔案就建立檔案加入内容
f = open('H:\\呵呵.txt',encoding = 'utf-8','a')
r+ 先讀後寫 一定要先讀後寫
f = open('H:\\呵呵.txt',encoding = 'utf-8','r+')
s = f.read()
f.write('kkkk')
print(f)
f.close()
w+ 先寫後讀
f = open('H:\\呵呵.txt',encoding = 'utf-8','w+')
f.write('kklkk')
print(f.tell()) 查找光标在什麼位置
f.seek(0) 參數填入數字 然後把光标調整到想要的位置
print(s)
f.close()
a+ 追加讀 可以一直先寫入再讀出來
f = open('H:\\呵呵.txt',encoding = 'utf-8','a+')
f.seek(0)
print(s)
其他方法
判斷是否可讀 可寫列印的是bool值
print(f.writable())
print(f.readable()
f.truncate() 參數填數字 按照位元組個數來截取檔案内容
系統中修改檔案的過程
1,将源檔案讀取到記憶體中
2,将原檔案的内容修改成新内容
3,将新字元串寫入新檔案上
4,将原檔案删除
5,将新檔案的名字改成原檔案名
import os
with open ('log',encoding='utf-8','r') as f1,\
open('bak_log',encoding='utf-8','w') as f2:
content = fi.read()
new_content = content.replace('sb','alex')
f2.wriite(new_content)
os.remove('log')
os.rename('bak_log','log')