1、操作
通過open()函數打開文件,默認是r(只讀)模式
處理非文本:b,輸入輸出是字節
只要有w就會清空前面的所有操作
2、只讀(r,rb)
f = open("day1.txt",mode="r",encoding="utf-8")
s = f.read()
f.close()
print(s)
f = open('ha',mode='rb')#讀取的內容就是字節
s = f.read()
print(s.decode("utf-8"))
f.close()
s.decode("utf-8") #字節解碼
3、只寫(w,wb) #寫入前清掉原來的內容
f = open('ha',mode='w',encoding='utf-8')
f.write("hdkahdjsdh")
f.flush()
f.close()
f = open('ha',mode='ab')
f.write("嘻嘻".encode("utf-8"))
f.close()
4、追加(a,ab)(在原來的基礎上增加內容)
f = open('ha',mode='a',encoding='utf-8')
f.write("廢物")
f.flush()
f.close()
f = open('ha',mode='wb')
f.write("哈哈".encode("utf-8"))
f.close()
5、讀寫(r+)默認情況光標在文件開頭
如果沒有任何操作直接寫就是在開頭,讀取了一些內容再寫,寫入的是末尾
f = open('ha',mode='r+',encoding="utf-8")
s = f.read()
f.write("周杰倫")
f.flush()
f.close()
print(s)
6、寫讀(w+)基本不用
f = open('ha',mode='w+',encoding="utf-8")
f.write("陳奕迅")
f.seek(0) #移動光標到開頭
s = f.read()
print(s)
f.flush()
f.close()
7、其他相關操作
read(n):從當前光標位置讀取n個字符
seek(n):移動到xx位置,中文是3的倍數,第二個參數表示從哪個位置進行偏移,默認是0,表示開頭,1表示當前位置,2表示結尾
開頭:seek(0)
末尾:seek(0,2)
8、文件內容修改
import os
# with不需要關閉文件
with open('ha',mode='r',encoding='utf-8') as f1 ,\ #兩行是一行
open('哈哈2',mode='w',encoding='utf-8') as f2:
s = f1.read()
ss = s.replace('多','哈')
f2.write(ss)
os.remove('ha') #刪除
os.rename('哈哈2','ha') #重命名文件
import os
# with不需要關閉文件
with open('ha2', mode='r', encoding='utf-8') as f1,\
open('ha', mode='w', encoding='utf-8') as f2:
for line in f1:
s = line.replace('哈','嘻')
f2.write(s)
os.remove('ha2') # 刪除
os.rename('ha', 'ha2') #重命名文件)
9、讀取多行
f = open('ha',mode='r',encoding='utf-8')
for line in f: # 每次讀取一行,賦值給前面的line
print(line)
f.close()
文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.