最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Python制作本地Excel的查詢(xún)與生成的程序問(wèn)題

 更新時(shí)間:2022年06月29日 11:55:28   作者:畢加鎖  
最近遇到這樣一個(gè)項(xiàng)目需求制作一個(gè)程序有一個(gè)簡(jiǎn)單的查詢(xún)?nèi)肟趯?shí)現(xiàn)Excel的查詢(xún)與生成,今天教大家利用Python制作本地Excel的查詢(xún)與生成的程序,感興趣的朋友跟隨小編一起看看吧

前言

今天教大家利用Python制作本地Excel的查詢(xún)與生成的程序

需求

制作一個(gè)程序 有一個(gè)簡(jiǎn)單的查詢(xún)?nèi)肟?實(shí)現(xiàn)Excel的查詢(xún)與生成

實(shí)驗(yàn)步驟

1打開(kāi)一個(gè)exe 彈出一個(gè)界面

2有一個(gè)查詢(xún) 卡號(hào) 點(diǎn)擊查詢(xún)

3下方展示查詢(xún)的結(jié)果 同時(shí)將這個(gè)查詢(xún)的結(jié)果 追加到一個(gè)新的結(jié)果Excel文件里

4新的結(jié)果Excel文件 格式和源文件格式相同 但是每次都在最后追加

今天教大家利用Python制作本地Excel的查詢(xún)與生成的程序

Excel預(yù)覽圖片

1.2 導(dǎo)入模塊并讀取Excel文件

等會(huì)要用的模塊有:pandas、os、xlwt和uuid
用import導(dǎo)入的代碼:

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í)的退出。

查詢(xún)

2.1 Excel的索引與輸入

為了方便后面查詢(xún),要把DataFrame的索引(index)設(shè)為查詢(xún)輸入的卡號(hào)。接著,輸出以卡號(hào)為索引的DF,以便用戶(hù)查詢(xún)。最后,就開(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)始查詢(xún)、豐富程序

查詢(xún)用dataframe.loc[index]來(lái)完成,最后輸出返回的Series。為了避免用戶(hù)輸入非卡號(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

追加查詢(xún)結(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 寫(xiě)入Column

在Column的位置,需要填入查詢(xún)的Excel的列索引,用

list(pandas.read_excel(aim_path).columns.values)

可以獲取到。然后把列索引以xlwt.write填進(jìn)去,最后把DF保存再讀取這個(gè)Excel。

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)

3.2 追加結(jié)果

首先,把結(jié)果res變量設(shè)置成列表類(lèi)型。然后,在這個(gè)列表里面新增結(jié)果沒(méi)有的卡號(hào)。最后把這個(gè)列表設(shè)置成一個(gè)Series(索引為查詢(xún)的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('寫(xiě)入失敗')

這里用了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('寫(xiě)入失敗')

到此這篇關(guān)于利用Python制作本地Excel的查詢(xún)與生成的程序的文章就介紹到這了,更多相關(guān)PythonExcel查詢(xún)生成的程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python開(kāi)發(fā)利器之ulipad的使用實(shí)踐

    python開(kāi)發(fā)利器之ulipad的使用實(shí)踐

    Ulipad是一個(gè)國(guó)人limodou編寫(xiě)的專(zhuān)業(yè)Python編輯器,它基于wxpython開(kāi)發(fā)的GUI(圖形化界面)。下面這篇文章主要介紹了python開(kāi)發(fā)利器之ulipad的使用實(shí)踐,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-03-03
  • 淺談selenium如何應(yīng)對(duì)網(wǎng)頁(yè)內(nèi)容需要鼠標(biāo)滾動(dòng)加載的問(wèn)題

    淺談selenium如何應(yīng)對(duì)網(wǎng)頁(yè)內(nèi)容需要鼠標(biāo)滾動(dòng)加載的問(wèn)題

    這篇文章主要介紹了淺談selenium如何應(yīng)對(duì)網(wǎng)頁(yè)內(nèi)容需要鼠標(biāo)滾動(dòng)加載的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • 詳解Python中的Array模塊

    詳解Python中的Array模塊

    這篇文章主要介紹了詳解Python中的Array模塊,Python中的array模塊是一個(gè)預(yù)定義的數(shù)組,因此其在內(nèi)存中占用的空間比標(biāo)準(zhǔn)列表小得多,同時(shí)也可以執(zhí)行快速的元素級(jí)別操作,例如添加、刪除、索引和切片等操作,需要的朋友可以參考下
    2023-04-04
  • Python操作Excel文件的11種方法(全網(wǎng)最全)

    Python操作Excel文件的11種方法(全網(wǎng)最全)

    在日常工作或開(kāi)發(fā)過(guò)程中,Excel文件作為一種常用的數(shù)據(jù)存儲(chǔ)格式,其高效便捷的數(shù)據(jù)處理能力被廣泛應(yīng)用于數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)分析等領(lǐng)域,Python作為一種強(qiáng)大的編程語(yǔ)言,提供了豐富的庫(kù)支持來(lái)實(shí)現(xiàn)對(duì)Excel文件的操作,本篇將詳細(xì)介紹如何使用Python來(lái)操作Excel文件
    2025-03-03
  • 使用python實(shí)現(xiàn)excel的Vlookup功能

    使用python實(shí)現(xiàn)excel的Vlookup功能

    這篇文章主要介紹了使用python實(shí)現(xiàn)excel的Vlookup功能,當(dāng)我們想要查找的數(shù)據(jù)量較大時(shí),這時(shí)則有請(qǐng)我們的主角VLookup函數(shù)出場(chǎng),那么如何用python實(shí)現(xiàn)VLookup呢,需要的朋友可以參考下
    2023-04-04
  • Python如何拆分含有多種分隔符的字符串

    Python如何拆分含有多種分隔符的字符串

    這篇文章主要介紹了Python如何拆分含有多種分隔符的字符串問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python實(shí)現(xiàn)遠(yuǎn)程通過(guò)網(wǎng)絡(luò)郵件控制計(jì)算機(jī)重啟或關(guān)機(jī)

    python實(shí)現(xiàn)遠(yuǎn)程通過(guò)網(wǎng)絡(luò)郵件控制計(jì)算機(jī)重啟或關(guān)機(jī)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)遠(yuǎn)程通過(guò)網(wǎng)絡(luò)郵件控制計(jì)算機(jī)重啟或關(guān)機(jī),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • python實(shí)現(xiàn)skywalking的trace模塊過(guò)濾和報(bào)警(實(shí)例代碼)

    python實(shí)現(xiàn)skywalking的trace模塊過(guò)濾和報(bào)警(實(shí)例代碼)

    Skywalking可以對(duì)鏈路追蹤到數(shù)據(jù)進(jìn)行告警規(guī)則配置,例如響應(yīng)時(shí)間、響應(yīng)百分比等。發(fā)送警告通過(guò)調(diào)用webhook接口完成。webhook接口用戶(hù)可以自定義。本文給大家介紹python實(shí)現(xiàn)skywalking的trace模塊過(guò)濾和報(bào)警,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • pytorch實(shí)現(xiàn)Tensor變量之間的轉(zhuǎn)換

    pytorch實(shí)現(xiàn)Tensor變量之間的轉(zhuǎn)換

    今天小編就為大家分享一篇pytorch實(shí)現(xiàn)Tensor變量之間的轉(zhuǎn)換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python 用所有標(biāo)點(diǎn)符號(hào)分隔句子的示例

    python 用所有標(biāo)點(diǎn)符號(hào)分隔句子的示例

    今天小編就為大家分享一篇python 用所有標(biāo)點(diǎn)符號(hào)分隔句子的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07

最新評(píng)論

仙桃市| 石屏县| 鄄城县| 洛川县| 高邑县| 五台县| 恩平市| 白银市| 平定县| 东明县| 濮阳县| 望江县| 永善县| 武冈市| 阿城市| 江北区| 若尔盖县| 大余县| 渝中区| 安庆市| 虎林市| 宜章县| 建湖县| 长泰县| 青冈县| 张家港市| 南涧| 昌江| 孟村| 龙口市| 夏河县| 高唐县| 象山县| 交口县| 施秉县| 五莲县| 合作市| 东乡| 涟水县| 偃师市| 嘉峪关市|