2023年7月22日 星期六

練習- 檔案操作

 處理文件關鍵字函數為 open(), 操作完畢後要鍵入close() 關閉檔案物件釋放資源

通常可以搭配 with open() 程式碼執行完畢時會自動關閉檔案IO


有四種打開文件的模式

r  :  讀取-默認值  ,當文件不存在則會出錯
a   :追加  在文件尾端 進行追加 類似append  ,如果文件不存在時會創建文件
w : 寫入  打開文件進行寫入, 如果文件不存在則會創建文件,如果文件存在則會重新復寫
x : Creat 創建指定的文件,如果文件存在則返回錯誤


此外 可只指定是以 二進制 或 是 文本模式處理

't'  :文本 -默認值, 文本模式

'b' :二進制 二進制模式,例如圖像


語法:

with open('檔案名稱' , '檔按模式') as 檔案物件:

with open('demon.txt' , 'r') as file:

    file.read()

#方法介紹

read()方法 返回整個文本,但也可以指定返回的字符數:

file.read(5)   #指返回文件的前5個字符


readline()方法 返回一行文本

file.readline()  #調用兩次就是返回前兩行,所以使用for也可以逐行讀完

readlines()方法 文本每一行都存入list中


write()方法 寫入string  

writelines()方法 用於將一個包含多行字符串的list寫入文件

writale() 方法用於檢查文件是否可以寫入,當文件已可寫入模式打開時會返回True

list1=['apple\n','banana\n','orange\n']
string=list1[0]

with open('demofile.txt' , 'w')as file:

    if file.writable(): #檢查文件是否可以寫入

        file.write(string)

        file.writelines(list1)

--------------'demofile.txt'-----------------

apple

apple

banana

orange



os.remove() 刪除文件 

os.remove('demofile.txt') #刪除demofile.txt


os.rmdir() 刪除資料夾

os.rmdir('newfolder')



os.path.exists()檢查檔案是否存在

os.path.exists('demofile.txt') #檢查demofile.txt是否存在,上面刪除後所以會回傳布林值False


os.makedirs() 建立資料夾

os.makeidrs('C:\\Users\\K\\OneDrive\\桌面\\資練處理練習')

這當中即使父路徑不存在,也會一併新增

os.listdir() 列出目前路徑內容(包含檔案和子目錄)


os.path.isfile() 確認是否是一個有效檔案 

os.path.isfile('oops.txt')

os.path.isdir()  確認是否是一個目錄

os.path.isdir(".") 確認目前目錄  , os.path.isdir("..") 確認父目錄

os.path.isabs() 確認是否是絕對路徑

os.rename()改名

shutil.copy(檔案路徑,目的路徑) 複製檔案,來自shutil模組

shutil.move(檔案路徑,目的路徑) 剪下檔案



glob() 方法來列出相符的檔案

規則如下

  • *會比對任何東西
  • ?會比對單一字元
  • [abc]比對a或b或c
  • [!abc]比對除了a b 或c之外字元

取得m開頭檔案或目錄

glob.glob("m*")  返回ex:['mcintyre']

有兩個字母的檔案或目錄?

glob.glbo("??")   返回 如果沒有就是[]

想要找8個字母m開頭e結尾的單字

glob.glob("m??????e")   返回['mcintyre']

有沒有以 k 、 l 或m開頭以e結尾的東西

glob.glob("[klm]*e")   返回['mcintyre']




os.path.join() 方法建立路徑名稱 

os.path.join('eek','urk')

返回eek\\urk





















































































標籤:

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁