# 關閉後的文件不能再進行讀寫操做,不然會觸發ValueError fo = open('a.txt', 'r') print('打開a.txt的文件') fo.close()
# flush()用來刷新緩衝區,將緩衝區的數據馬上寫入文件 # 同時清空緩衝區,不須要是被動的等待輸出緩衝區寫入 # 通常狀況,文件關閉後會自動刷新緩衝區,但有時須要在關閉前刷新它,這時就須要使用flush()方法 fo =open('a.txt', 'wb') print('打開a.txt的文件') fo.flush() fo.close()
①. 只讀模式 r (默認)函數
②. 只寫模式 w (不可讀,不存在則建立,存在則覆蓋)spa
③. 追加模式 a (可讀,不存在則建立,存在則只追加內容)操作系統
④. '+' 表示可同時讀寫某個文件:指針
r+ 可讀寫文件(可讀、可寫、可追加)code
w+ 寫讀對象
a+ 追加blog
⑤. ‘u’表示在讀取時,可將 \r \n \r\n 自動轉換成 \n (與 r 或者 r+ 模式同時使用)utf-8
由於Windows系統的換行符爲\r\n,Linux系統的換行符爲 \n , 加上u則能自動把\r\n轉換成\nit
ruio
r+u
⑥. ‘b’ 表示處理二進制文件
rb
wb
ab
# # 讀取文件內容(可指定每次讀取字符數) # with open('a.txt', 'r+', encoding='utf-8') as f: # ret = f.read(8) # print(ret)
# 讀取數據(可指定讀取字符數),存爲list顯示 # f = open('b.txt', 'r+', encoding='utf-8') # ret = f.readlines() # print(ret) # f.close()
# # 讀取一行數據 # f = open('b.txt', 'r+', encoding='utf-8') # ret = f.readline() # print(ret) # f.close()
# 判斷文件是否可讀(不可讀則報錯「No such file or directory:」) f = open('b.txt', 'r+', encoding='utf-8') ret = f.readable() print(ret) f.close()
# 獲取指針位置 f = open('b.txt', 'r+', encoding='utf-8') # 先讀取8個字符 ret = f.read(8) # 查看當前指針位置 print('pointer position: %s' %f.tell()) print(ret) # 重置指針到起始位 f.seek(0) # 查看指針當前位置 print('pointer position: %s' %f.tell()) f.close()
# 指定文件中指針位置 f = open('b.txt', 'r+', encoding='utf-8') # 先讀取8個字符 ret = f.read(8) print(ret) # 重置指針到起始位 f.seek(0) # 在從新讀取8個字符 ret = f.read(8) print(ret) f.close()
# 截取文件數據,僅保留指定以前數據(指定字節數) f = open('b.txt', 'r+', encoding='utf-8') # 文件只保留前8個字節數據,文件後面的數據所有刪除 f.truncate(8) ret = f.read() print(ret) f.close()
# fileno()返回一個整型的文件描述(file desccriotor FD 整型) # 可用於底層操做系統的I/O操做 fo = open('b.txt', 'wb') print('文件名爲:',fo.name) fid = fo.fileno() print('文件描述爲:',fid) fo.close()
# isatty()檢測文件是否鏈接到一個終端設備 # 若是是返回True,不然返回False fo = open('b.txt', 'wb') print('文件名爲:',fo.name) ret = fo.isatty() print('返回值:',ret) fo.close()
# Python3中的file對象不支持next()方法 # Python3的內置函數next()經過迭代器調用__next()__方法返回下一項 # 在循環中,next()方法會在循環中調用,該方法返回文件的下一行 # 若是到達結尾(EOF)則觸發Stopiteration fo = open('b.txt', 'r') for index in range(5): line = next(fo) print('第%d行 - %s'%(index, line))