python中文件讀寫的相關操作及應用
阿新 • • 發佈:2018-07-14
img write {} list r+ 密碼 else data adl
1:既讀又寫
1 with open(‘數據‘,mode=‘r+‘,encoding=‘utf-8‘) as f: 2 print(f.read()) #輸出結果:python與人工智能密切相關 3 f.write(‘java也不錯‘) 4 print(f.read()) #輸出結果:無輸出 ,如果我們想打印 5 # 寫入的內容,但是因為光標已經 6 # 移到了字符串的結尾了,所以這裏我們7 #可以使用tell()與seek()來確定位置
改進過後:
1 with open(‘數據‘, mode=‘r+‘, encoding=‘utf-8‘) as f: 2 print(f.read()) # 輸出結果:python與人工智能密切相關 3 f.write(‘java也不錯‘) 4 print(f.tell()) # 輸出結果:46 其中一個字母1個字節,一個漢字三個字節,所以下面-13 5 f.seek(f.tell()-13) 6 print(f.read()) #輸出結果:java也不錯
seek()將官光標的位置移到需要的位置,tell()返回當前光標的位置
2:寫讀(不常用)
1 with open(‘數據‘, mode=‘w+‘, encoding=‘utf-8‘) as f: 2 f.write(‘java也不錯‘) 3 print(f.read()) # 輸出結果:無任何輸出,相比w的不同處就在於f.read()不會報錯,同樣,a+也是如此 4 # 就不在這裏做贅述了
3:readline()用法:每次只讀一行
1 with open(‘數據‘, mode=‘r+‘, encoding=‘utf-8‘) as f: 2 print(f.readline()) # 輸出結果:java也不錯 3 print(f.readline()) # 輸出結果:python也是個好工具 4 print(f.readline()) # 輸出結果:c++也不遜色呦
4:readlines()用法:每一行當作列表中的一個元素,然後打印出來
1 with open(‘數據‘, mode=‘r+‘, encoding=‘utf-8‘) as f: 2 print(f.readlines()) # 輸出結果:[‘java也不錯\n‘, ‘python也是個好工具\n‘, ‘c++也不遜色呦‘]
5:for循環(可以將文件中的所有內容按照原文件格式打印)
1 with open(‘數據‘, mode=‘r+‘, encoding=‘utf-8‘) as f: 2 for line in f: 3 print(line) #輸出結果:java也不錯 4 # python也是個好工具 5 # c++也不遜色呦
6:註冊登錄的應用
username = input(‘請輸入您需要註冊的用戶名:‘) password = input(‘請輸入您的密碼:‘) with open(‘list_of_info‘,mode=‘w‘,encoding=‘utf-8‘) as f: f.write(‘{}\n{}‘.format(username,password)) list_data = [] i = 1 while i <= 3: usn = input(‘請輸入您的用戶名:‘) psd = input(‘請輸入您的密碼:‘) with open(‘list_of_info‘, mode=‘r+‘, encoding=‘utf-8‘) as f1: for line in f1: list_data.append(line) # print(list_data) if usn == list_data[0].strip() and psd == list_data[1].strip(): print(‘登錄成功‘) break else: print(‘請重新登錄!‘) i += 1
python中文件讀寫的相關操作及應用