第七天知識總結
阿新 • • 發佈:2020-08-01
檔案操作:
# # 1.檔案路徑:分為絕對路徑和相對路徑 # # 2.編碼方式:utf-8,jbk..... # # 3.操作方式:只讀,只寫,追加,讀寫,寫讀
1.只讀(r,rb);加個b的意思是以bytes型別追加進去(在圖片中用)
f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='r', encoding='gbk') content = f.read() print(content) f.close() # f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='rb') content = f.read() print(content) f.close()
2.只寫(w,wb),沒有檔案的話就建立,有就先將原始檔內容刪除再寫
f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='w',encoding='utf-8') content = f.write('內容') print(content) f.close() # f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='w',encoding='utf-8') content= f.write('內容還有內容') f.close() # f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='wb') content = f.write('內容sfs'.encode('utf-8')) f.close()
3.追加(a)
f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='a',encoding='utf-8') content = f.write(',新的東西') f.close() # f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='ab',) content = f.write(',好的天氣'.encode('utf-8')) f.close()
4.讀寫,只能先讀再寫,否則會出現佔位;寫讀中,同理只能先寫再讀(w+;還有a+
f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+',encoding='utf-8') print(f.read()) print(f.write(',太陽')) f.close() # f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+b') print(f.read()) print(f.write(',太陽1'.encode('utf-8'))) f.close()
5.查詢時移動游標seek()
f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+',encoding='gbk') # content = f.read(2) # 讀出來的都是字元 f.seek(2) # 按照位元組去定游標的位置 content = f.read() print(content) f.close()
6.告訴你游標的位置tell()
f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='a+',encoding='gbk') f.write('你好') count = f.tell() f.seek(count - 4) # 只讀最後兩個 print(f.read()) f.close()
7.其他知識點
f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+',encoding='gbk') print(f.readable()) # 是否可讀readable(),返回值時T或者F print(f.readline()) # 一行一行的讀 print(f.readlines()) # 每一行當成列表中的一個元素,新增到列表中 f.truncate() # 擷取 f.close()
8.迴圈讀取
f = open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+',encoding='gbk') for i in f: print(i.strip()) # strip去除換行 f.close()
9.with(開啟時最後可以不用寫close,同時還可以開啟多個並進行多種操作,一般都是用的這種開啟方式)
with open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+',encoding='gbk') as f,\ open('C:/Users/Administrator/Desktop/python例子.txt', mode='w+', encoding='gbk') as i: with open('C:/Users/Administrator/Desktop/python例子.txt', mode='r+',encoding='gbk') as f: print(f.read())
10.課後作業:簡單的實現使用者註冊登入
username_registered = input('請輸入要註冊的使用者名稱') password_registered = input('請輸入要註冊的密碼') with open('C:/Users/Administrator/Desktop/使用者資訊.txt', mode='w',encoding='utf-8') as f: f.write('{}\n{}'.format(username_registered,password_registered)) print('恭喜註冊成功') i = 0 lis = [] while i < 3: username = input('請輸入使用者名稱') password = input('請輸入密碼') with open('C:/Users/Administrator/Desktop/使用者資訊.txt', mode='r+',encoding='utf-8') as f1: for k in f1: lis.append(k) if username == lis[0].strip() and password == lis[1].strip(): print('登入成功') break else: print('登入失敗,請重新輸入') i += 1