Python 處理數(shù)據(jù)的實(shí)例詳解
Python 處理數(shù)據(jù)的實(shí)例詳解
最近用python(3.2的版本)寫(xiě)了根據(jù)特定規(guī)則,處理數(shù)據(jù)的一個(gè)小程序,用到了一些python常用的基礎(chǔ)知識(shí),在此總結(jié)一下:
1,python讀文件
2,python寫(xiě)文件
3,python的流程控制
4,python的for循環(huán)
5,python的集合,或字符串里判斷是否存在某個(gè)元素
6,python的邏輯或,邏輯與
7,python的正則過(guò)濾
8,python的字符串忽略空格,和以某個(gè)字符串開(kāi)頭和按某個(gè)字符拆分成list
python的打開(kāi)文件的模式:
關(guān)于open 模式:
w 以寫(xiě)方式打開(kāi),
a 以追加模式打開(kāi) (從 EOF 開(kāi)始, 必要時(shí)創(chuàng)建新文件)
r+ 以讀寫(xiě)模式打開(kāi)
w+ 以讀寫(xiě)模式打開(kāi) (參見(jiàn) w )
a+ 以讀寫(xiě)模式打開(kāi) (參見(jiàn) a )
rb 以二進(jìn)制讀模式打開(kāi)
wb 以二進(jìn)制寫(xiě)模式打開(kāi) (參見(jiàn) w )
ab 以二進(jìn)制追加模式打開(kāi) (參見(jiàn) a )
rb+ 以二進(jìn)制讀寫(xiě)模式打開(kāi) (參見(jiàn) r+ )
wb+ 以二進(jìn)制讀寫(xiě)模式打開(kāi) (參見(jiàn) w+ )
ab+ 以二進(jìn)制讀寫(xiě)模式打開(kāi) (參見(jiàn) a+ )
處理代碼如下:
def showtxt(path,outpathname,detailpath): greenpath=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\green.txt"; redpath=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\red.txt"; redset=listtxt(redpath) greenset=listtxt(greenpath) print("紅色詞數(shù)量: ",len(redset)) print("綠色詞數(shù)量: ",len(greenset)) #符合1條件的內(nèi)容寫(xiě)入 f1=open(r"C:\Users\qindongliang\Desktop\tnstxt\result\\"+detailpath+"\\1.txt",encoding="UTF-8",mode="a+") #符合2條件的內(nèi)容寫(xiě)入 f2=open(r"C:\Users\qindongliang\Desktop\tnstxt\result\\"+detailpath+"\\2.txt",encoding="UTF-8",mode="a+") #符合3條件的內(nèi)容寫(xiě)入 f3=open(r"C:\Users\qindongliang\Desktop\tnstxt\result\\"+detailpath+"\\3.txt",encoding="UTF-8",mode="a+") #符合4條件的內(nèi)容寫(xiě)入 f4=open(r"C:\Users\qindongliang\Desktop\tnstxt\result\\"+detailpath+"\\4.txt",encoding="UTF-8",mode="a+") delcount=1; f=open(path,encoding="UTF-8",mode="r+") fnew=open(outpathname,encoding="UTF-8",mode="a+") flog=open(outpathname+".log",encoding="UTF-8",mode="a+") #count=1; for line in f: list=line.strip().split("\t") line=line.strip() catalogid=list[0] score=list[1] keyword=clear(list[4].strip()) if keyword in redset: if catalogid.startswith("018022") or catalogid.startswith("018035") or catalogid.startswith("014023003") : f1.write(line+"\n")#符合1條件寫(xiě)入 fnew.write(line+"\n")#符合1條件寫(xiě)入 else: flog.write(line+" 不符合條件1 "+"\n") delcount=delcount+1 if keyword in greenset: if not (catalogid.startswith("018022") or catalogid.startswith("018035") or catalogid.startswith("014023003")) : fnew.write(line+"\n") else: f2.write(line+"\n") flog.write(line+" 不符合條件2"+"\n") delcount=delcount+1 flist=formatStrList(keyword) if "sexy" in flist or "sex" in flist: if catalogid.startswith("018022") or catalogid.startswith("018035") or catalogid.startswith("014023003") : f3.write(line+"\n") fnew.write(line+"\n") else: flog.write(line+" 不符合條件3"+"\n") delcount=delcount+1 #if (keyword.find("underwear")!=-1) & keyword.find("sexy")==-1 & keyword.find("sex")==-1: if "underwear" in flist and "sexy" not in flist and "sex" not in flist: if catalogid.startswith("014032") : f4.write(line+"\n") fnew.write(line+"\n") else: flog.write(line+" 不符合條件4"+"\n") delcount=delcount+1 #print(list[0]," ",list[1]," ",list[4]) #print() flog.write("刪除總數(shù)目: "+str(delcount)) f.close() f1.close() f2.close() f3.close() f4.close() fnew.close() flog.close() import re def clear(str): str=re.sub("[\"\"\'\'+]","",str) return str def formatStrList(keyword): list=keyword.split(" ") for item in list: item.strip(); return list def listtxt(path): f=open(path,encoding="UTF-8") s=set() for line in f: s.add(line.strip()) f.close() return s path1=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\highfrequency.txt" pathout1=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\detail\\a_highfrequency.txt" detail1path="highfrequency" path2=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\highfrequency_d1.txt" pathout2=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\detail\\b_highfrequency_d1.txt" detail2path="highfrequency_d1" #showtxt(path1,pathout1,detail1path) showtxt(path2,pathout2,detail2path)
以上就是對(duì)Python 的數(shù)據(jù)處理的實(shí)例詳解,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
利用python實(shí)現(xiàn)凱撒密碼加解密功能
這篇文章主要介紹了利用python實(shí)現(xiàn)凱撒密碼加解密功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03基于virtualenv創(chuàng)建python虛擬環(huán)境過(guò)程圖解
這篇文章主要介紹了基于virtualenv創(chuàng)建python虛擬環(huán)境過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Python 詳解通過(guò)Scrapy框架實(shí)現(xiàn)爬取百度新冠疫情數(shù)據(jù)流程
Scrapy是用純Python實(shí)現(xiàn)一個(gè)為了爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)而編寫(xiě)的應(yīng)用框架,用途非常廣泛,框架的力量,用戶(hù)只需要定制開(kāi)發(fā)幾個(gè)模塊就可以輕松的實(shí)現(xiàn)一個(gè)爬蟲(chóng),用來(lái)抓取網(wǎng)頁(yè)內(nèi)容以及各種圖片,非常之方便2021-11-11Python自定義函數(shù)定義,參數(shù),調(diào)用代碼解析
這篇文章主要介紹了Python自定義函數(shù)定義,參數(shù),調(diào)用代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12python打包為linux可執(zhí)行文件的詳細(xì)圖文教程
這篇文章主要給大家介紹了關(guān)于python打包為linux可執(zhí)行文件的詳細(xì)圖文教程,本文介紹的方法可以輕松地將Python代碼變成獨(dú)立的可執(zhí)行文件,需要的朋友可以參考下2024-02-02python 給DataFrame增加index行名和columns列名的實(shí)現(xiàn)方法
今天小編就為大家分享一篇python 給DataFrame增加index行名和columns列名的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06