通過一個用戶交互的例子進行說明,如何通過讀取寫入文件與用戶交互直接的操作功能。 ...
一、提前知識點
在python中是同樣和其他語言一樣可以進行文件的讀取寫入操作,值得註意的是,Python中打開文件讀取的方式有幾種,分別是以下幾種:
1 f = open('username.txt') 2 first_line = f.readline() 3 print('first line:',first_line ) 4 f.close()View Code
1 try: 2 f = open('username.txt') 3 print(f.read() ) 4 finally: 5 if f: 6 f.close()View Code
上面兩種各有區別,第一種在打開文件進行讀取之後,需要針對文件進行關閉,這是值得註意的一點,如果沒有進行關閉,可能在下次進行寫入過程或者出現其他莫名的錯誤,後者則是使用了try指令,這個可以自動在結束後進行文件關閉,但相對的來說比較繁瑣,那麼就有第三種比較簡便的方式,with指令。
1 with open('username.txt') as f: 2 print(f.read())View Code
二、如何進行用戶交互和讀取寫入文件直接進行操作
這邊需要用到的是我之前在Python自學之路中用到的用戶交互的用法,這邊針對輸入對文件的內容進行比較,這邊就用到了讀取文件的指令。按照之前把文件的內容取出來放入變數中,這邊值得註意的是我們需要強制的進行數據類型的轉換(不轉換不會出錯,但會使得我們比較的時候結果不是我們需要的結果,就是因為實際看到的數字或者字元類型和我們需要的類型不一致導致。)
用代碼來說的話就這樣
1 username = str(input("username:")) 2 password = str(input("password:")) 3 with open('locked.txt') as f3: 4 account_locked = f3.readlines() 5 if username in account_locked : 6 print("your account are locked ")View Code
readlines是讀取該文件的內容,和readline是有區別的,一個簡單方法就是把內容列印出來看就很清楚發現一個是讀取全部,另一個是讀取首行。這邊也應用了if語句進行判斷。
補充之前Python自學之路中,第一個習題的個人理解:
1 # Author: JC 2 3 #打開文件 4 '''f = open('username.txt') 5 first_line = f.readline() 6 print('first line:',first_line ) 7 f.close()''' 8 '''try: 9 f = open('username.txt') 10 print(f.read() ) 11 finally: 12 if f: 13 f.close() 14 with open('username.txt') as f: 15 print(f.read()) 16 ''' 17 login_flag = 0 18 print("Do you want to do ?(login/apple)") 19 if input() == 'login'and login_flag == 0: 20 login_flag = 1 21 22 if login_flag == 1: 23 count = 1 24 while count < 4: 25 print("please enter your username and password.") 26 username = str(input("username:")) 27 password = str(input("password:")) 28 with open('locked.txt') as f3: 29 account_locked = f3.readlines() 30 if username in account_locked : 31 print("your account are locked ") 32 break 33 with open ('username.txt') as f1,open ('password.txt') as f2: 34 _username =f1.readlines() 35 _password = f2.readlines() 36 if username not in _username or password not in _password: 37 print("eorr username or password!\n you have {count} times.".format(count= 3-count)) 38 count += 1 39 if count ==4: 40 with open('locked.txt', 'a+') as f3: 41 f3.write(username) 42 f3.write('\n') 43 print("your account are locked ") 44 else: 45 print("Welcome {name} to login....".format(name=username) ) 46 break 47 else: 48 print("please enter your new account and password.") 49 username = input("username:") 50 password = input("password:") 51 with open('username.txt','a+') as f1: 52 f1.write(username) #把變數寫入文件 53 f1.write('\n') #添加換行符 54 with open('password.txt','a+') as f2: 55 f2.write(password) 56 f2.write('\n') 57 #flag = 1View Code