poj 1675(數學,注意原點和共線,共線是原點同側)
阿新 • • 發佈:2021-07-30
一、檔案操作的基本流程
1.基本流程
(1)開啟檔案,由應用程式向作業系統發起呼叫open(),作業系統開啟該檔案,對應一塊硬碟空間,並返回一個檔案物件賦值給一個變數f f=open("a.txt",mode="rt",encodind="utf-8") (2)呼叫檔案物件下的讀寫方法,會被作業系統轉換為讀/寫硬碟的操作 date=f.read() (3)向作業系統發起關閉檔案的請求,回收系統資源 f.close()
2.with
(1) 在執行完子程式碼塊後,with會自動執行f.close()
with open('db.txt',mode='rt',encoding='utf-8') as f: print(f.read()) print('='*50) print(f.read())
(2)可用用with同時開啟多個檔案,用逗號分隔開即可
with open('db.txt',mode='rt',encoding='utf-8') as f,\ open('b.txt',mode='rt') as f1: print(f.read()) print('='*50) print(f.read())
二、檔案的操作模式
1.控制檔案讀寫內容的模式
(1) t模式的使用:(預設):
1. 讀寫檔案都是以字串為單位的
2. 只能針對文字檔案
3. 必須指定encoding引數
(2) b模式的使用;
1.讀寫檔案都是以bytes/二進位制為單位的
2. 可以針對所有檔案
3. 一定不能指定encoding引數
2.控制檔案讀寫操作的模式
(1)r模式的使用:只讀模式
檔案不存在則報錯,如果檔案存在則指標置於檔案開頭 with open("a.txt",mode="rt",encoding="utf-8") as f: print(f.read())
小練習:
實現使用者認證功能 inp_user = input("請輸入您的名字").strip() inp_pwd = input("請輸入您的密碼").strip() f=open(r"a.txt",mode="rt",encoding="utf-8") for line in f: user,pwd=line.strip("\n").split(":") if inp_user == user and inp_pwd == pwd: print("登入成功") break else: print("登入失敗") f.close()
(2)w模式的使用:只寫模式
在檔案不存在時建立空文件,檔案存在會清空檔案,檔案指標會跑到檔案的開頭 with open("b.txt",mode="wt",encoding="utf-8") as f: f.write('你好\n') f.write('我好\n') f.write('大家好\n') f.write('111\n222\n333\n')
強調:
1 在檔案不關閉的情況下,連續的寫入,後寫的內容一定跟在前寫內容的後面
2 如果重新以w模式開啟檔案,則會清空檔案內容
(3)a模式的使用:只寫(追加)
a只追加寫模式: 在檔案不存在時會建立空文件,檔案存在會將檔案指標直接移動到檔案末尾 with open(“c.txt",mode="at",encoding="utf-8") as f: f.write("444\n") f.write("555\n") 強調 w 模式與 a 模式的異同: 1 相同點:在開啟的檔案不關閉的情況下,連續的寫入,新寫的內容總會跟在前寫的內容之後 2 不同點:以 a 模式重新開啟檔案,不會清空原檔案內容,會將檔案指標直接移動到檔案末尾,新寫的內容永遠寫在最後
案例:實現註冊功能
name = input("username===>").strip()
pwd = input("password===>").strip()
with open("a.txt",mode="a",encoding="utf-8") as f:
info=("%s:%s\n"%(name,pwd))
f.write(info)