1. 程式人生 > 其它 >8.2檔案開啟的模式

8.2檔案開啟的模式

""""""
"""
檔案開啟的模式
r 只讀模式
w 只寫模式
a 追加寫模式
操作檔案單位的方式
t 文字檔案
t在使用的時候需要指定encoding引數
如果不指定,預設是作業系統的預設編碼
注: b 二進位制 一定不能指定encoding引數

# mode引數 可以不寫
不寫的話預設是rt 只讀的文字檔案
這個t不寫預設就是t

"""
# 格式
# with open(r'D:\面試整理\重新開始\2.字元編碼和檔案(7-8)\8.檔案模式',mode='r',encoding='utf-8')as f:

# print(f.readable()) # # 是否可讀 # True
# print(f.writable()) # 是否可寫

# print(f.read()) # 一次性將檔案內容全部讀出

# with open(r'D:\面試整理\重新開始\2.字元編碼和檔案(7-8)\8.檔案模式',mode='rb') as f: # b 一定不可以設定encode
# print(f.readable()) # 是否可讀
# print(f.writable()) # 是否可寫
# print(f.read()) # 一次性將檔案內容全部讀出

# r模式在開啟檔案的時候 如果檔案不存在 直接報錯
# 檔案路徑可以寫相對路徑 但是需要注意該檔案必須與執行檔案在同一層檔案下

# with open(r'8a.txt',mode='r',encoding='utf-8') as f:
# with open(r'8a.txt','r',encoding='utf-8') as f1: # mode關鍵字可以不寫
# print(f.readable()) # 是否可讀
# print(f.writable()) # 是否可寫
# print(">>>1:")
# print(f.read()) # 一次性將檔案內容全部讀出
# print('>>>2:')
# print(f.read()) # 讀完一次之後 檔案的游標已經在檔案末尾了,再讀就沒有內容了可讀
# print(f.readlines()) # 返回的是一個列表 列表中的一個個元素對應的就是檔案的一行行內容
# for line in f: # f可以被for迴圈 每for迴圈依次 讀一行內容
# print(line) # 這個方法 就可以解決大檔案一次性讀取佔用記憶體過高的問題
# print(f.readline()) # 只讀取檔案一行內容
# print(f.readline())
# print(f.readline())
# print(f.readline())


# w模式:w模式一定要慎用
# 1.檔案不存在的情況下 自動建立該檔案
# 2.當檔案存在的情況下 會先清空檔案內容再寫入
# with open(r'8xxx.txt',mode='w',encoding='utf-8') as f:
# print(f.readable()) # 是否可讀
# print(f.writable()) # 是否可寫
# f.write('不不不,你沒有翻~\n')
# f.write('不不不,你沒有翻~\n')
# f.write('不不不,你沒有翻~\n')
# f.write('不不不,你沒有翻~\r')
# f.write('不不不,你沒有翻~')
# l = ['不sdffs,sdfs有翻~\n','不sdfsdf不,你sdfsf翻~\n','不sfad不,你沒sa翻~\n']
# f.writelines(l)
# # 上下等價
# for i in l:
# f.write(i)


# a模式
# 1.當檔案不存在的情況下 自動建立該檔案
# 2.當檔案存在的情況下,不清空檔案內容, 檔案的游標會移動檔案的最後

with open(r'8y.txt','a',encoding='utf-8')as f:
print(f.readable()) # 是否可讀
print(f.writable()) # 是否可寫
f.write('我是小尾巴\n')