一.檔案操作的流程
1、開啟檔案
open('c:\a.txt\nb\c\d.txt')
解決方案一:推薦
open(r'c:\a.txt\nb\c\d.txt')
解決方案二:
open('c:/a.txt/nb/c/d.txt')
f=open(r'aaa/a.txt',mode='rt') # f的值是一種變數,占用的是應用程式的記憶體空間
2、操作檔案:
讀/寫檔案,應用程式對檔案的讀寫請求都是在向作業系統傳送系統呼叫,然後由作業系統控制硬碟把輸入讀入記憶體、或者寫入硬碟
res=f.read()
3、關閉檔案
f.close() # **作業系統資源
f.read() # 變數f存在,但是不能再讀了
二.資源管理與with上下文管理
開啟乙個檔案包含兩個部分資源:應用程式的變數f和作業系統開啟的檔案。
在操作完乙個檔案後必須把這兩部分的資源**
通常**有兩種方法:
1 f.close()#**作業系統開啟的檔案資源
2 del f # **應用程式資源
其中,del f 一定要發生在f.close()之後,否則就會導致作業系統開啟的檔案無法關閉,。
python的垃圾**機制讓我們無序考慮del f,所以我們必須記住,操作完畢後一定要fclose(),
但是我們都是比較懶或者比較健忘的,所以python就有with關鍵字來幫助我們管理上下文。
1. with open('a.txt',mode='rt') as f1:# f1=open('a.txt',mode='rt')
pass
2. with open('a.txt',mode='rt') as f1,\
open('b.txt',mode='rt程式設計客棧') as f2:
res1=f1.read()
res2=f2.read()
print(res1)
三.檔案的操作模式
檔案的讀寫操作的模式有
檔案的讀寫內容的模式有
t 文字模式:1.讀寫檔案都是以字串為單位
2.只能針對文字檔案
3.必須制定encoding引數
b 二進位制模式:1.讀寫檔案都是以bytes為單位的
2.可以針對所有檔案
3.一定不能制定encoding引數
強調:t和b不能單獨使用,必須跟r/w/a連用
各模式的參考案例
1、r(預設的操作模式):
唯讀模式,當檔案不存在時報錯,當檔案存在時檔案指標跳到開始位置
with open('c.txt',mode='rt',encoding='utf-8') as f:
print('第一次讀'.center(50,'*'))
res=f.read() # 把所有內容從硬碟讀入記憶體
print(res)
with open('c.txt', mode='rt', encoding='utf-8') as f:
print('第二次讀'.center(50,'*'))
res1=f.read()
print(res1)
實現使用者認證功能
inp_username=input('your name>>: ').strip()
inp_password=input('your password>>: ').strip()
with open('user.txt',mode='rt',encoding='utf-8') as f:
for line in f:
# print(lwww.cppcns.comine,end='') # egon:123\n
username,password=line.strip().split(':') #壓縮賦值,取出檔案中的使用者名稱密碼
if inp_username == username and inp_password == password:
print('login successfull')
break
else:
print('賬號或密碼錯誤')
應用程式====》檔案
應用程式====》資料庫管理軟體*****》檔案
2、w:只寫模式,當檔案不存在時會建立空檔案,當檔案存在會清空檔案,指標位於開始位置
with open('d.txt',mode='wt',encoding='utf-8') as f:
# f.read() # 報錯,不可讀
# f.write('擦勒\n')
# 強調1:
# 在以w模式開啟檔案沒有關閉的情況下,連續寫入,新的內容總是跟在舊的之後
# with open('d.txt',mode='wt',encoding='utf-8') as f:
# f.writ程式設計客棧e('擦勒1\n')
# f.write('擦勒2\n')
# f.write('擦勒3\n')
# 強調2:
# 如果重新以w模式開啟檔案,則會清空檔案內容
# with open('d.txt',mode='wt',encoding='utf-8') as f:
# f.write('擦勒1\n')
# with open('d.txt',mode='wt',encoding='utf-8') as f:
# f.write('擦勒2\n')
# with open('d.txt',mode='wt',encoding='utf-8') as f:
# f.write('擦勒3\n')
案例:w模式用來建立全新的檔案
檔案檔案的copy工具
就是讀乙個檔案,再寫乙個檔案,把讀的複製給寫的。
# src_file=input('>: ').strip()
# dst_file=input('>: ').strip()
# with open(r'{}'.format(src_file),mode='rt',encoding='utf-8') as f1,\
# open(r'{}'.format(dst_file),mode='wt',encoding='utf-8') as f2:
# res=f1.read()
# f2.write(res)
3、a:只追加寫,在檔案不存在時會建立空文件,在檔案存在時檔案指標會直接調到末尾
with open('e.txt',mode='at',encoding='utf-8') as f:
# f.read() # 報錯,不能讀
f.write('1\n')
f.write('2\n')
f.write('3\n')
強調 w 模式與 a 模式的異同:
1 相同點:在開啟的檔案不關閉的情況下,連續的寫入,新寫的內容總會跟在前寫的內容之後
2 不同點:以 a 模式重新開啟檔案,不會清空原檔案內容,會將檔案指標直接移動到檔案末尾,新寫的內容永遠寫在最後
案例:a模式用來在原有的檔案記憶體的基礎之上寫入新的內容,比如記錄日誌、註冊
註冊功能
name=input('your name>>: ')
pwd=input('your name>>: ')
with ope程式設計客棧n('db.txt',mode='at',encoding='utf-8') as f:
f.write('{}:{}\n'.format(name,pwd))
了解:+不能單獨使用,必須配合r、w、a
r+,w+,a+:可讀可寫
本文標題: python檔案操作基礎流程解析
本文位址: /jiaoben/python/303394.html
python之檔案操作流程
1.開啟檔案 open 注 windows路徑分隔符問題 open c a b d.txt open r c a b d.txt 解決方案二 open c a b d.txt f open r c a b d.txt,mode rt print f f的值是一種變數,占用的是應用程式的記憶體空間2....
Python基礎 檔案操作
使用 open 能夠開啟乙個檔案,open 的第乙個引數為檔名和路徑 my file.txt 第二個引數為將要以什麼方式開啟它,比如w為可寫方式.如果計算機沒有找到 my file.txt 這個檔案,w 方式能夠建立乙個新的檔案,並命名為 my file.txt 例項 text tthis is m...
python 基礎 檔案操作
開啟 在python,使用open函式,可以開啟乙個已經存在的檔案,或者建立乙個新檔案 open 檔名,訪問模式 示例如下 f open test.txt w 說明 訪問模式說明r 以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。w開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。...