<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
python 檔案操作、檔案讀寫(write、read、readlines、readline)、檔案的相關操作,簡單易懂
檔案就是把一些資料存起來,可以讓程式下一次執行的時候直接使用,而不必重新制作一份,省時省力。
在python中,使用open函數,可以開啟已經存在的檔案,或者建立一個新檔案,open(檔名,存取模式)
範例如下:
f = open(‘test.txt','w')
沒有找到‘test.txt’檔案,所以新建了‘test.txt’檔案
close()
範例如下:
#新建一個檔案,檔名為:test.txt f = open(「text.txt」,」w」) f.colse()#關閉這個檔案
1.2 存取模式及說明
存取模式 | 說明 |
---|---|
r | 以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。 |
w | 開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 |
a | 開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 |
rb | 以二進位制格式開啟一個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。 |
wb | 以二進位制格式開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 |
ab | 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 |
r+ | 開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。 |
w+ | 開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 |
a+ | 開啟一個檔案用於讀寫,如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果改檔案不存在,建立新檔案用於讀寫。 |
rb+ | 以二進位制格式開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭 |
wb+ | 以二進位制格式開啟一個檔案用於讀寫。如果改檔案已存在則會覆蓋。如果改檔案不存在,建立新檔案。 |
ab+ | 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果改檔案不存在,建立新檔案用於讀寫。 |
使用write()可以完後向檔案寫入資料
範例如下:
#寫 f = open("test.txt","w") #開啟檔案,w模式(寫模式),檔案不存在就新建 f.write("hello world,I am here!") #將字串寫入檔案中 f.close() #關閉檔案
寫入的內容
使用read(num)可以從檔案中讀取資料,num表示要從檔案中讀取的資料的長度(單位是位元組),如果沒有傳入num,那麼就表示讀取檔案中的所有資料
範例如下:
#讀:read方法,讀取指定的字元,開始時定位在檔案頭部,每執行一次向後移動指定字元數 f = open("test.txt","r") content = f.read(5) #一次讀五個字元 print(content) print('-'*30) content = f.read() print(content) f.close()
執行結果下圖:
就像read沒有引數時一樣,readlines可以按照行的方式把整個檔案中的內容進行一次性的讀取,並且返回的是一個列表,其中每一行的資料為一個元素
範例如下:
f = open("test.txt","r") content = f.readlines() # 一次性讀取全部檔案為列表,每行一個字串 print(content) #['hello world,I am here!n', 'hello world,I am here!n', 'hello world,I am here!n', 'hello world,I am here!n', i = 1 for temp in content: print("%d:%s"%(i,temp)) i += 1 f.close()
執行結果下圖:
readline一次讀取一行
範例如下:
f = open("test.txt","r") content = f.readline() #1:hello world,I am here!--1 print("1:%s"%content) content = f.readline() #2:hello world,I am here!--2 print("2:%s"%content) f.close()
執行結果下圖:
有些時候,需要對檔案進行重新命名、刪除一些操作,python的os模組中都有這些功能
os模組中的rename()可以完成對檔案的重新命名操作rename(需要修改的檔名,新的檔名)
import os os.rename(「畢業論文.txt」,」畢業論文-最終版.txt」)
os中的remove()可以完成對檔案的刪除操作
remove(待刪除的檔名)
import os os.remove(「畢業論文.txt」)
import os os.mkdir(「張三」)
import os os.getcwd()
import os os.chdir(「../」)
將資料夾下所有圖片名稱加上'_fc'
python程式碼:
# -*- coding:utf-8 -*- import re import os import time #str.split(string)分割字串 #'連線符'.join(list) 將列表組成字串 def change_name(path): global i if not os.path.isdir(path) and not os.path.isfile(path): return False if os.path.isfile(path): file_path = os.path.split(path) #分割出目錄與檔案 lists = file_path[1].split('.') #分割出檔案與副檔名 file_ext = lists[-1] #取出字尾名(列表切片操作) img_ext = ['bmp','jpeg','gif','psd','png','jpg'] if file_ext in img_ext: os.rename(path,file_path[0]+'/'+lists[0]+'_fc.'+file_ext) i+=1 #注意這裡的i是一個陷阱 #或者 #img_ext = 'bmp|jpeg|gif|psd|png|jpg' #if file_ext in img_ext: # print('ok---'+file_ext) elif os.path.isdir(path): for x in os.listdir(path): change_name(os.path.join(path,x)) #os.path.join()在路徑處理上很有用 img_dir = 'D:\xx\xx\images' img_dir = img_dir.replace('\','/') start = time.time() i = 0 change_name(img_dir) c = time.time() - start print('程式執行耗時:%0.2f'%(c)) print('總共處理了 %s 張圖片'%(i))
到此這篇關於python檔案操作基礎的文章就介紹到這了,更多相關python檔案操作內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45