這篇文章給大家分享的是有關(guān)Python如何實(shí)現(xiàn)文件讀寫、坐標(biāo)尋址、查找替換功能的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。
打開文件(文件需要存在)
#打開文件 f = open("data.txt","r") #設(shè)置文件對(duì)象 print(f)#文件句柄 f.close() #關(guān)閉文件 #為了方便,避免忘記close掉這個(gè)文件對(duì)象,可以用下面這種方式替代 with open('data.txt',"r") as f: #設(shè)置文件對(duì)象 str = f.read() #可以是隨便對(duì)文件的操作
#完全讀取文件 f = open("data.txt","r") #設(shè)置文件對(duì)象 string1 = f.read() #將txt文件的所有內(nèi)容讀入到字符串string1中 f.close() #將文件關(guān)閉 print(string1)
按按行讀取整個(gè)文件方法一(刪除回車)
#按行讀取整個(gè)文件方法一(刪除回車) data = [] f = open("data.txt","r") #設(shè)置文件對(duì)象 line = f.readline() if line !='\n' and line[len(line) -1 if len(line)-1>0 else 0] == "\n":#去掉換行符,也可以不去 line_ = line[:-1] data.append(line_) while line: #直到讀取完文件 line = f.readline() #讀取一行文件,包括換行符 if line !='' and line[len(line) -1 if len(line)-1>0 else 0] == "\n":#去掉換行符,也可以不去 line_ = line[:-1] data.append(line_) f.close() #關(guān)閉文件 print(data)
按行讀取整個(gè)文件方法一(不刪除回車)
#按行讀取整個(gè)文件方法一(不刪除回車) data = [] f = open("data.txt","r") #設(shè)置文件對(duì)象 line = f.readline() data.append(line) while line: #直到讀取完文件 line = f.readline() #讀取一行文件,包括換行符 if line !='': data.append(line) f.close() #關(guān)閉文件 print(data)
按行讀取整個(gè)文件第二種方法
#按行讀取整個(gè)文件第二種方法 data = [] for line in open("data.txt","r"): #設(shè)置文件對(duì)象并讀取每一行文件 data.append(line) #將每一行文件加入到list中 print(data )
按行讀取整個(gè)文件第三種方法
f = open("data.txt","r") #設(shè)置文件對(duì)象 data = f.readlines() #直接將文件中按行讀到list里,效果與方法2一樣 f.close() #關(guān)閉文件 print(data)
將文件讀入numpy數(shù)組中
#將文件讀入數(shù)組中 import numpy as np data = np.loadtxt("data.txt") #將文件中數(shù)據(jù)加載到data數(shù)組里 print(data)
#列表寫入文件(直接) data = ['a','b','c'] #單層列表寫入文件 with open("data.txt","w") as f: f.writelines(data)
#列表寫入文件(加入一些東西) data = ['a','b','c'] #單層列表寫入文件 with open("data.txt","w") as f: for i in data: f.write(i+'\r\n')
#二維列表寫入文件 data =[ ['a','b','c'],['a','b','c'],['a','b','c']] with open("data.txt","w") as f: #設(shè)置文件對(duì)象 for i in data: i = str(i).strip('[').strip(']').replace(',','').replace('\'','').replace(' ',',')+'\r\n' #將其中每一個(gè)列表規(guī)范化成字符串 print(i) f.write(i)
#第二種方法,直接將每一項(xiàng)都寫入文件 data =[ ['a','b','c'],['a','b','c'],['a','b','c']] with open("data.txt","w") as f: #設(shè)置文件對(duì)象 for i in data: #對(duì)于雙層列表中的數(shù)據(jù) f.writelines(i) #將數(shù)組寫入文件
import numpy as np data =[ [1,2,3],[4,5,6],[7,8,9]] # 第一種方法將數(shù)組中數(shù)據(jù)寫入到data.txt文件 np.savetxt("data1.txt",data) # 第二種方法將數(shù)組中數(shù)據(jù)寫入到data.npy文件 np.save("data",data) import numpy as np filename = 'data.txt' # txt文件和當(dāng)前腳本在同一目錄下,所以不用寫具體路徑 dataele_list = [] with open(filename, 'r') as f: while True: lines = f.readline() # 整行讀取數(shù)據(jù) if not lines: break dataele_tmp = [float(i) for i in lines.split()] # 將整行數(shù)據(jù)分割處理,如果分割符是空格,括號(hào)里就不用傳入?yún)?shù),如果是逗號(hào), 則傳入‘,'字符。 dataele_list.append(dataele_tmp) # 添加新讀取的數(shù)據(jù) dataele_np = np.array(dataele_list) # 將數(shù)據(jù)從list類型轉(zhuǎn)換為array類型。 print(dataele_np)
#非替換寫入 #r+ 模式的指針默認(rèn)是在文件的開頭 # 如果直接寫入,則會(huì)覆蓋源文件,通過read() 讀取文件后,指針會(huì)移到文件的末尾,再寫入數(shù)據(jù)就不會(huì)有問題了。 # 這里也可以使用a 模式 f2 = open('data.txt','r+') f2.read() f2.write('\r\nhello boy!') f2.close() #非替換寫入 f2 = open('data.txt','a') f2.write('\r\nhello fff!') f2.close()
文件坐標(biāo)插入讀取
# 在開始使用open打開文件時(shí)候,將打開方式從r,換成rb即可 才可以使用seek移動(dòng) f = open('data.txt','rb') #f.tell() #獲取指針位置 print("初始位置",f.tell()) # 開頭位置偏離3位置 f.seek(3,0) print("開頭位置偏離3位置",f.tell()) print("==",f.readline(),"==") print("讀取一行后位置",f.tell()) # 當(dāng)前位置偏離5位置 f.seek(5,1) print("當(dāng)前位置偏離5位置",f.tell()) print("==",f.readline(),"==") print("讀取一行后位置",f.tell()) # 結(jié)尾偏離5位置 f = open('data.txt','rb') f.seek(0,2) print("結(jié)尾偏離0位置",f.tell()) print("==",f.readline(),"==") print("讀取一行后位置",f.tell()) f.seek(3,2) print("結(jié)尾偏離3位置",f.tell()) print("==",f.readline(),"==") print("讀取一行后位置",f.tell())
內(nèi)容查找
# 內(nèi)容查找 import re f = open('data.txt') source = f.read() f.close() r = 'www' s = len(re.findall(r,source)) print(s) import re f = open("data.txt",'r') count = 0 for s in f.readlines(): li = re.findall("www",s) if len(li)>0: count = count + len(li) print ("Search",count, "www") f.close()
#替換 f1 = open('data.txt','r') f2 = open('data2.txt','w') for s in f1.readlines(): f2.write(s.replace('www','w')+'\r\n') f1.close() f2.close()
#排序 去除空行 注釋 f = open('data.txt') result = list() for line in f.readlines(): # 逐行讀取數(shù)據(jù) line = line.strip() #去掉每行頭尾空白 if not len(line) or line.startswith('#'): # 判斷是否是空行或注釋行 continue #是的話,跳過不處理 result.append(line) #保存 f.close() result.sort() #排序結(jié)果 print(result) f = open('data2.txt','w') for line in result: f.write(line+'\r\n')
感謝各位的閱讀!關(guān)于“Python如何實(shí)現(xiàn)文件讀寫、坐標(biāo)尋址、查找替換功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文名稱:Python如何實(shí)現(xiàn)文件讀寫、坐標(biāo)尋址、查找替換功能-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://jinyejixie.com/article16/dsehdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、外貿(mào)建站、網(wǎng)站排名、定制網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容