操作流程:
打開文件,得到句柄並賦值給一個變量 句柄爲讀取文件的內存對象
操作文件 關閉文件
打開文件:
data= open("yesterday",encoding="utf-8").read()
print(data)
r 讀取
w 寫入
f = open("yesterday","w",encoding="utf-8")
r讀取文件打開從上到下開始讀 ,讀完後光標在文件最後面,第二次讀只能重新讀、w寫入的時候覆蓋原文件。
f.write("我愛北京天安門\n") \n 換行
f.write("天安門上太陽升")
a 追加
f = open("yesterday","a",encoding="utf-8")
f.write("我愛北京天安門.......\n") \n 換行
f.write("天安門上太陽升........")
f.readline() 讀取一行
f.readlines() 讀取文件作爲一個列表,一行行讀
只能讀取小文件到內存中。
for line in f:
print(line)
把文件作爲迭代器, 一行行讀取文件,並且不佔用內存
不會變成列表,沒有下標。
自己加計數器
for line in f :
if count == 9:
print("----------我是分割線")
continue
print(line)
count +=1
f = open("yesterday",encoding="utf-8").read()
print(f.tell()) 記數,記數讀取多少個字符
f.seek(0) 光標退回到第0個字符
f.flush() 刷新剛剛寫入的文件,確保寫入到硬盤上
sys.stdout.write(#1") 在屏幕上,標準輸出 打印進度條
import sys,time
for i in range(20):
sys.stdout.write("#")
sys.stdout.flush() 實時刷新,沒有這個進度條不慢慢走
time.sleep(0.1)
f = open("yesterday","a",encoding="utf-8")
f.truncate(10) 從文件開頭截取10個字符
文件既能讀又能寫,
r+ 讀取和追加的形式
f = open("yesterday","r+",encoding="utf-8")
f.write("------------") 在文件最後追加
f = open("yesterday","w+",encoding="utf-8")
print(f.write("------------"))
print(f.write("------------"))
print(f.write("------------"))
print(f.tell)
f.seek(10)
print(f.tell)
print(f.readline())
f.write("should be at the beginnging of the second line")
f.close()
追加只能從最後追加,不能從中間修改
f = open("yesterday","rb",encoding="utf-8") 以二進制的格式讀取文件
網絡傳輸,只能用二進制模式傳輸
f.closed() 看文件是否關閉
f. isatty(終端設備,打印機交互)
f.seekable() 判斷能否移動光標
f.readable() 判斷文件是否可讀
f.writeable()判斷文件是否可寫