python的檔案處理

2021-08-20 11:53:12 字數 4600 閱讀 3026

1 什麼是檔案?

檔案是作業系統為使用者或應用程式提供的乙個讀寫硬碟的虛擬單位

檔案的操作核心就:讀、寫

即我們只需要對於進行讀寫操作,就是對作業系統發起請求,然後由作業系統將使用者或者應用程式

對檔案的讀寫操作轉換成具體的硬碟指令(比如控制碟片轉動,控制機械手臂移動來讀寫資料)

2 為什麼要有檔案?

因為記憶體無法永久儲存資料,但凡我們想要永久儲存資料都需要儲存到硬碟中,

而操作檔案就可以實現對硬體的操作

3 如何用檔案

name='egon'pwd='123'把記憶體中的資料儲存到硬碟中去

l=[1,2,3]

print(l)

把硬碟中的資料讀到記憶體中

rawstring

f=open(r'e:\sh_fullstack_s2\day08\a.txt',mode='r') # 向作業系統發起請求,要求作業系統開啟檔案

占用作業系統的資源

f1=10

f2='aaaa'f2.index()

print(f)

y=2data=f.read() # 向作業系統開啟發起讀請求,會被作業系統轉成具體的硬碟操作,將內容由硬碟讀入記憶體

print(data)

delf

f.close() #向作業系統發起請求,要求作業系統關閉檔案,**系統資源

print(f)

f.read()

總結:1、開啟檔案

2、讀寫

3、關閉

檔案的絕對路徑:

1、絕對路徑:從碟符(c:\\ e:\\ d:\\)開始寫乙個完整的路徑

2、相對路徑:相對於當前執行檔案所在的資料夾開始找

f=open(r'a\a.txt')

控制讀寫檔案內容的結果有兩種:t模式text,b模型bytes

注意:1、t與b這兩種模式均不能單獨使用,都需要與r/w/a之一連用

2、預設的內容格式是t

3、只有文字檔案才能用t模式,也只有文字檔案才有字元編碼的概念

操作檔案的基礎模式有三種:

1、r,預設的

2、w3、a

r:read,唯讀模式

1、只能讀,不能寫

2、在檔案不存在時,會報錯,在檔案存在的時候會將檔案指標移動到開頭

f=open(r'b.txt',mode='rt',encoding='utf-8')

data1=f.read()

print('第一次:',data1)

# print(type(data1))

# data2=f.read()

# print('第二次:',data2)

f.close()

f=open(r'b.txt',mode='rt',encoding='utf-8')

data2=f.read()

print('第二次:',data2)

f.close()

f=open(r'b.txt',mode='rt',encoding='utf-8')

# print(f.readable())

# print(f.readline(),end='')

# print(f.readline(),end='')

lines=f.readlines()

print(lines)

f.close()

w:只寫模式

1、只能寫,不能讀

2、在檔案不存在時會建立空檔案,在檔案存在的時候會將檔案內容清空

f=open(r'c.txt',mode='wt',encoding='utf-8')

print(f.readable())

f.read()

f.write('你好啊我的天\n你好啊我的地\n啊啊啊啊啊啊\n')

f.write('4444\n')

f.write('5555')

lines=['1111\n','2222\n','33333\n']

forlineinlines:

f.write(line)

f.writelines(line

f.close()s)

a:只追加寫模式

1、只能寫,不能讀

2、在檔案不存在時會建立空檔案,在檔案存在的時候會將指標移動到檔案末尾

f=open('d.txt',mode='at',encoding='utf-8')

print(f.readable())

f.read()

f.write('555555\n6666\n')

f.writelines(['77777\n','8888888\n','999999999\n'])

f.close()

b:二進位制模式

注意:1、一定不能指定字元編碼,只有t模式才與字元編碼有關

2、b是二進位制模式,是一種通用的檔案讀取模式,因為所有的檔案在硬碟中都是以二進位制形式存放的

迴圈讀f=open('d.txt','rt',encoding='utf-8')

forlineinf:

print(line)

f.close()

f=open('d.txt','rb')

forlineinf:

print(line)

f.close()

f=open('oldsiji.mp4','rb')

forlineinf:

print(line)

f.close()

f=open('e.txt','wb')

f.write('你好啊'.encode('utf-8'))

f.close()

f=open('e.txt','ab')

.encode('utf-8'))

f.close()

上下文管理

withopen('e.txt','rb')asf,open('j.txt','wt',encoding='utf-8')asf1:

#檔案的操作

src_data=f.read()

res=src_data.decode('utf-8')

# print(res,type(res))

f1.write(res)

python的檔案處理

f open f.txt w r唯讀,w可寫,a追加 for i in range 0,10 f.write str i n f.close open是python的內建函式,有時候檔案由於編碼的不同,會造成亂碼,為了解決這個問題 可以使用codecs模組來解決這個問題 import codecs ...

python的檔案處理

01 檔案的開啟和關閉 開啟檔案 open 檔名,訪問模式 f open test.txt w 訪問模式 r w a rb wb ab r w a rb wb ab 關閉檔案 f.close 02 檔案的讀寫 寫資料f open test.txt w f.write hello world f.cl...

python的檔案處理

檔案的逐行讀入 fname input 請輸入要開啟的檔名稱 fo open fname,r txt fo.read 3 while txt txt fo.read 2 fo.close 檔案的逐行列印 fname input 請輸入要開啟的檔名稱 fo open fname,r for line ...