11 檔案基本操作 上下文管理 IO流 使用工具

2022-08-13 05:48:19 字數 3411 閱讀 1874

持久儲存:

儲存記憶體中資料都是易丟失的,只有儲存在硬碟中才能持久的儲存,儲存在硬碟中的基本方法就是把資料寫入檔案中

file = open("

text.txt

","w+

") #

開啟檔案

file.write("

hello python !!!

") #

寫入檔案

file.flush() #

儲存檔案

print(file.tell()) #

檢視檔案指標

print(file.seek(0)) #

移動檔案指標

print(file.read()) #

讀取檔案

print(file.readline()) #

每次只能讀取一行

#print(file.readlines() ) #把每一行的內容讀取出來當成乙個元素,放到乙個列表裡面

file.close() #

關閉檔案

160hello python !!!

with open("

text.txt

","w+

") as f: #不需要關閉 會對檔案自動儲存和關閉

加個b的作用:以二進位制的格式開啟檔案,進行上述操作 。

通過這兩個方法可以方便的實現上下文管理

with會把 __enter__ 的返回值賦值給 as 後的變數

class myclass:       #

上下文管理器

def__enter__(self): #

進入 進入時需要執行的**,相當於準備工作

print("

開始執行的時候呼叫了我")

return

"開始了

"def

__exit__(self, exc_type, exc_val, exc_tb): #

退出 退出時需要執行的**,相當於收尾工作

print("

結束執行的時候呼叫了我")

with myclass() as a:

#使用with開啟檔案,則檔案不需要自己關閉,會自動的關閉

print

(a)

for i in range (1,6):

print

(i)開始執行的時候呼叫了我

開始了123

45結束執行的時候呼叫了我

stringio在記憶體中如同開啟檔案一樣操作字串,因此也有檔案的很多方法當建立的stringio呼叫 close() 方法時,在記憶體中的資料會被丟失

import

iosio = io.stringio #

建立io操作

sio.write('

hello python

') #寫入#

sio.seek(0)

#print(sio.read())

print(sio.getvalue()) #

讀取sio.close()

bytesio 和 stringio 類似,但是bytesio操作的是 bytes資料

import

iosio = io.bytesio #

建立io操作

sio.write(b"

abcd

") #寫入#

sio.seek(0)

#print(sio.read())

print(sio.getvalue()) #

讀取sio.close()

os 模組提供python和作業系統互動的介面os 提供了python和作業系統互動方式,只要是和作業系統相關,就可以嘗試在os模組中找方法

import

osos.system("ls

") #

直接呼叫系統命令

os.system("

pwd")#

通用路徑操作

import

osos.path

'posixpath

'from

'/usr/lib/python3.5/posixpath.py

'>os.path.join(

"/home/pyvip

","py_case1")

'/home/pyvip/py_case1'#

檔案目錄操作

os.mkdir("

/home/pyvip/projects/home/pyvip/projects/基礎班/ly")

os.rename("ly

","ly1

")

shutil 模組提供了許多關於檔案和檔案集合的高階操作

import

shutil

shutil.copytree(

"ly1

","lll

") #

複製檔案件

shutil.move("

with.py

","lll

") #

移動檔案

shutil.rmtree("

lll") #

刪除資料夾

with管理檔案操作上下文

之前我們使用open 方法操作檔案,但是open開啟檔案後我們還需要手動釋放檔案對作業系統的占用。但是其實我們可以更方便的開啟檔案,即python提供的上下文管理工具 with open with open 32.txt rt encoding utf8 as f print f.read sdfw...

with管理檔案操作上下文

之前我們使用open 方法操作檔案,但是open開啟檔案後我們還需要手動釋放檔案對作業系統的占用。但是其實我們可以更方便的開啟檔案,即python提供的上下文管理工具 with open copywith open 32.txt rt encoding utf8 as f print f.read ...

Python檔案基本操作及上下文管理

開啟檔案 f open fole name,mode r 傳入表示檔案路徑的字串,會返回乙個檔案物件,mode是檔案開啟模式。關閉檔案 f.close 呼叫給定檔案物件的close方法。檔案開啟模式 r 以唯讀方法開啟檔案,檔案指標預設放在檔案開頭,檔案不存在就報錯。r 開啟乙個檔案用於讀寫,檔案指...