近期碰到這樣的一種業(yè)務(wù)需求創(chuàng)建一個(gè)程序流程有簡(jiǎn)單的查詢?nèi)肟谕瓿蒃xcel的查看與形成,今日教給大家運(yùn)用Python制作當(dāng)?shù)谽xcel的查看與形成程序流程,感興趣的小伙伴來(lái)了解一下吧一起了解一下吧
序言
今日教給大家運(yùn)用Python制作當(dāng)?shù)谽xcel的查看與形成程序流程
要求
創(chuàng)建一個(gè)程序流程有簡(jiǎn)單的查詢?nèi)肟谕瓿蒃xcel的查看與形成
實(shí)驗(yàn)步驟
1開(kāi)啟一個(gè)exe彈出來(lái)一種頁(yè)面
2有個(gè)查詢卡號(hào)查詢按鈕
3下邊展現(xiàn)查詢結(jié)論與此同時(shí)把這個(gè)查詢結(jié)論增加到一個(gè)全新的結(jié)論Excel文件里
4新得到的結(jié)果Excel文件文件類型和源文件類型同樣可是每次都是在最終增加
今日教給大家運(yùn)用Python制作當(dāng)?shù)谽xcel的查看與形成程序流程
Excel預(yù)覽圖片
1.2導(dǎo)進(jìn)控制模塊并獲取Excel文件
待會(huì)要用到的控制模塊有:pandas、os、xlwt和uuid
用import導(dǎo)進(jìn)的編碼:
import pandas,os,xlwt,uuid
導(dǎo)入好后,就要讀取Excel文件了。讀取Excel要用到pandas的read_excel函數(shù)。
try: exl=pandas.read_excel(aim_path) except: print('找不到文件!請(qǐng)檢查一下文件路徑或文件是否存在') os._exit(0)
剛剛導(dǎo)入os模塊就是為了做異常捕獲找不到文件時(shí)的退出。
查詢
2.1 Excel的索引與輸入
為了方便后面查詢,要把DataFrame的索引(index)設(shè)為查詢輸入的卡號(hào)。接著,輸出以卡號(hào)為索引的DF,以便用戶查詢。最后,就開(kāi)始循環(huán)輸入了。
exl.set_index('卡號(hào)',inplace=True) print(f'{exl}n') while 1: try: idx=input('卡號(hào)(輸入“退出”即可退出):') if idx=='退出': os._exit(0)
2.2開(kāi)始查詢、豐富程序
查詢用dataframe.loc[index]來(lái)完成,最后輸出返回的Series。為了避免用戶輸入非卡號(hào)信息,就又加了異常捕獲。
res=exl.loc[idx] print(f'n{res}n') except KeyError: print('你的卡號(hào)可能輸錯(cuò)了!我找不到這個(gè)卡號(hào)的人哦~n') continue except: print('有些錯(cuò)誤發(fā)生了!n') continue 追加查詢結(jié)果到Excel
3.1讀取或新建Excel
3.1.1讀取
讀取跟上面一樣,用read_excel
try: res_exl=pandas.read_excel(res_path)
3.1.2新建Workbook和Sheet
現(xiàn)在輪到xlwt模塊大展身手啦~用Workbook函數(shù)來(lái)新建Workbook;用add_sheet函數(shù)新增Sheet
except: workbook=xlwt.Workbook() sheet=workbook.add_sheet('new') col=0
3.1.2寫入Column
在Column的位置,需要填入查詢的Excel的列索引,用
list(pandas.read_excel(aim_path).columns.values)
3.2追加結(jié)果
首先,把結(jié)果res變量設(shè)置成列表類型。然后,在這個(gè)列表里面新增結(jié)果沒(méi)有的卡號(hào)。最后把這個(gè)列表設(shè)置成一個(gè)Series(索引為查詢的Excel的列索引)。
res_series_data=list(res) res_series_data.insert(2,idx) res_series=pandas.Series( res_series_data, index=list( pandas.read_excel(aim_path).columns.values ) ) 現(xiàn)在建好了Series,準(zhǔn)備追加了。追加完后還要保存這個(gè)Excel。 res_exl.loc[str(uuid.uuid1())]=res_series try: res_exl.to_excel(res_path,index=False) except: print('寫入失敗') 這里用了uuid.uuid1來(lái)隨機(jī)產(chǎn)生索引,避免重復(fù)而修改其它人的值。最后幾行就是保存的操作,python index=False的意思就是把索引隱藏掉了。 完整代碼 try: exl=pandas.read_excel(aim_path) except: print('找不到文件!請(qǐng)檢查一下文件路徑或文件是否存在') os._exit(0) exl.set_index('卡號(hào)',inplace=True) print(f'{exl}n') while 1: try: idx=input('卡號(hào)(輸入“退出”即可退出):') if idx=='退出': os._exit(0) res=exl.loc[idx] print(f'n{res}n') except KeyError: print('你的卡號(hào)可能輸錯(cuò)了!我找不到這個(gè)卡號(hào)的人哦~n') continue except: print('有些錯(cuò)誤發(fā)生了!n') continue try: res_exl=pandas.read_excel(res_path) except: workbook=xlwt.Workbook() sheet=workbook.add_sheet('new') col=0 for i in list(pandas.read_excel(aim_path).columns.values): sheet.write(0,col,i) col+=1 workbook.save(res_path) res_exl=pandas.read_excel(res_path) res_series_data=list(res) res_series_data.insert(2,idx) res_series=pandas.Series( res_series_data, index=list( pandas.read_excel(aim_path).columns.values ) ) res_exl.loc[str(uuid.uuid1())]=res_series try: res_exl.to_excel(res_path,index=False) except: print('寫入失敗')
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128770.html
從行業(yè)角度來(lái)說(shuō),通過(guò)一步一步剖析,目標(biāo)就是簡(jiǎn)易,新手入門requests網(wǎng)絡(luò)爬蟲及新手入門pandas數(shù)據(jù)剖析就能完成,文中關(guān)鍵為大家介紹Python網(wǎng)絡(luò)爬蟲抓取金融衍生品數(shù)據(jù)庫(kù)的經(jīng)典案例,感興趣的小伙伴一起了解一下吧 哈嘍大家好政胤今日教給大家抓取金融衍生品數(shù)據(jù)和信息 每日任務(wù)介紹 最先,顧客原消費(fèi)是獲得https://hq.smm.cn/copper網(wǎng)站里的價(jià)錢數(shù)據(jù)和信息(注:獲得的...
在今日,任何小區(qū)類服務(wù)平臺(tái),都具有點(diǎn)贊功能,應(yīng)時(shí)而生的便是自動(dòng)點(diǎn)贊器,別名刷電話分機(jī)/qq刷贊器。本文用Python撰寫1個(gè)關(guān)注點(diǎn)贊智能機(jī)器人,所需要的可以了解一下 在今日,任何小區(qū)類服務(wù)平臺(tái),都具有點(diǎn)贊功能,應(yīng)時(shí)而生的便是自動(dòng)點(diǎn)贊器,別名刷電話分機(jī)/qq刷贊器?! ”疚臑榇蠹医榻B一下一個(gè)關(guān)注點(diǎn)贊智能機(jī)器人,最簡(jiǎn)單容易接受的關(guān)鍵邏輯性。 全篇涉及到的遞歸算法,應(yīng)用Python撰寫,因?yàn)槭沁f...
當(dāng)運(yùn)用桌面應(yīng)用程序時(shí),有沒(méi)有有一瞬間,想學(xué)習(xí)下桌面應(yīng)用程序開(kāi)發(fā)設(shè)計(jì)?接下來(lái)本文關(guān)鍵為大家介紹了有關(guān)Python使用pywebview開(kāi)發(fā)設(shè)計(jì)桌面應(yīng)用的資料,必須的小伙伴可以借鑒一下 序言 平時(shí)用過(guò)Eel做出來(lái)的桌面應(yīng)用感覺(jué)就已經(jīng)夠?qū)帕?不過(guò)因?yàn)镋el是啟用Chrome,常常出現(xiàn)一些小毛病,例如窗口大小設(shè)定后有的時(shí)候不起作用,右鍵新建菜單沒(méi)法禁止使用(一眼就能看出來(lái)是一個(gè)web).并且試了用...
當(dāng)運(yùn)用桌面應(yīng)用程序時(shí),有沒(méi)有有一瞬間,想學(xué)習(xí)下桌面應(yīng)用程序開(kāi)發(fā)設(shè)計(jì)?接下來(lái)本文關(guān)鍵為大家介紹了有關(guān)Python使用pywebview開(kāi)發(fā)設(shè)計(jì)桌面應(yīng)用的資料,必須的小伙伴可以借鑒一下 序言 平時(shí)用過(guò)Eel做出來(lái)的桌面應(yīng)用感覺(jué)就已經(jīng)夠?qū)帕?不過(guò)因?yàn)镋el是啟用Chrome,常常出現(xiàn)一些小事情,例如窗口大小設(shè)定后有時(shí)不起作用,右鍵新建菜單沒(méi)法禁止使用(一眼就能看出來(lái)就是一個(gè)web).并且試了用p...
摘要:俗話說(shuō),不會(huì)使用工具來(lái)完成任務(wù)的都是進(jìn)化不完全的表現(xiàn),大數(shù)據(jù)時(shí)代,可視化已經(jīng)深深鉆進(jìn)我們的生活,使用可視化工具也變的相當(dāng)普遍,今天我們來(lái)總結(jié)下當(dāng)下可視化工具都有哪些。是一個(gè)地圖庫(kù),主要面向數(shù)據(jù)可視化用戶。 俗話說(shuō),不會(huì)使用工具來(lái)完成任務(wù)的都是進(jìn)化不完全的表現(xiàn),大數(shù)據(jù)時(shí)代,可視化已經(jīng)深深鉆進(jìn)我們的生活,使用可視化工具也變的相當(dāng)普遍,今天我們來(lái)總結(jié)下當(dāng)下可視化工具都有哪些。 showImg...
閱讀 923·2023-01-14 11:38
閱讀 895·2023-01-14 11:04
閱讀 756·2023-01-14 10:48
閱讀 2055·2023-01-14 10:34
閱讀 961·2023-01-14 10:24
閱讀 840·2023-01-14 10:18
閱讀 510·2023-01-14 10:09
閱讀 588·2023-01-14 10:02