Python檔案操作基礎流程解析

2022-09-28 09:06:13 字數 3825 閱讀 6144

一.檔案操作的流程

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開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。...