吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 23885|回复: 177
收起左侧

[Python 转载] 为了让女朋友赶快成为办公室里的老司机,我只好趁着中午吃饭的时候用python研究了...

    [复制链接]
创造太阳 发表于 2020-10-27 16:18
我给女朋友发了20000句情话,她暂时不想听情话了!(详见:女朋友抱怨不会说情话,用python给她发了20000句!让她见识见识情话大全!https://www.52pojie.cn/thread-1113388-1-1.html(出处: 吾爱破解论坛))
女朋友最近不找我下五子棋了!(详见:女朋友下棋比我厉害,还特别嚣张,不能忍。拿python敲个辅助,看她如何嚣张!https://www.52pojie.cn/thread-1116867-1-1.html(出处: 吾爱破解论坛))
不过也没怼我,上次的表情包好像白存了,不过还是留着吧,万一派上用场了呢?(详见:为了防止女朋友怼我,我就先用python爬了3600个怼人表情包等她来战!https://www.52pojie.cn/thread-1118801-1-1.html(出处: 吾爱破解论坛))
也不知道你们找到女朋友了没有,找到的话,一起来交流研究!(详见:别再酸了,女朋友是不可能发,但是可以用python帮你创造机会搞到一个!搞到来告诉我!https://www.52pojie.cn/thread-1119202-1-1.html(出处: 吾爱破解论坛))
女朋友存了好多网上的男明星的照片,我准备用python全部换成我的脸!https://www.52pojie.cn/thread-1120431-1-1.html(出处: 吾爱破解论坛)
为了知道女朋友的小秘密,我用python爬了榜姐微博下60000个女生小秘密!https://www.52pojie.cn/thread-1123043-1-1.html(出处: 吾爱破解论坛)
女朋友每晚都给我发诱惑图,我用python搞了更多诱惑图反击她!https://www.52pojie.cn/thread-1128807-1-1.html(出处: 吾爱破解论坛)
女朋友要和我拼手速,不得不用python让她见识我的手速!年轻人,不要试图和你不知...https://www.52pojie.cn/thread-1139015-1-1.html(出处: 吾爱破解论坛)
为了看看女朋友生日那天是什么样子,我用python爬了一年的照片!https://www.52pojie.cn/thread-1144764-1-1.html(出处: 吾爱破解论坛)
女朋友说A罩杯最流行,我用python爬了几十万的购买数据来证明她是在狡辩!https://www.52pojie.cn/thread-1145712-1-1.html(出处: 吾爱破解论坛)
女朋友说因为异性相吸,所以容易产生真爱!我觉得得用python验证一下!https://www.52pojie.cn/thread-1151862-1-1.html(出处: 吾爱破解论坛)
周扬青和罗志祥分手,女朋友说要去周扬青吧看看有没有经验贴,我只好用python快速...https://www.52pojie.cn/thread-1163712-1-1.html(出处: 吾爱破解论坛)
女朋友比较喜欢民宿风格,我就用python爬了一个短租民宿网站,做个合格的男朋友!https://www.52pojie.cn/thread-1171476-1-1.html(出处: 吾爱破解论坛)
为了提高女朋友的计算速度,我用python帮她做了一个出题器,提升一下她的智力水平!https://www.52pojie.cn/thread-1187174-1-1.html(出处: 吾爱破解论坛)
不要998,不要668,不要188,只要10行代码!手把手带你给女朋友写本《吃不胖经》!https://www.52pojie.cn/thread-1235152-1-1.html(出处: 吾爱破解论坛)
女朋友急的叫“爸爸”了,我只好用python帮女朋友迅速完成问卷搜集任务,一小时轻松完成五百份!.https://www.52pojie.cn/thread-1252330-1-1.html(出处: 吾爱破解论坛)
七夕前用python给女朋友抢了萝卜丁,结果她好像并不是很开心!强烈鄙视乱起名的商...https://www.52pojie.cn/thread-1256443-1-1.html(出处: 吾爱破解论坛)
为了找到女朋友当年写的让人读起来会脸红的小说,只好用python把飞卢文学近60000本...https://www.52pojie.cn/thread-1259368-1-1.html(出处: 吾爱破解论坛)
女朋友天天要我来算时间,只好用python整个小玩意让她自己玩吧!https://www.52pojie.cn/thread-1289178-1-1.html(出处: 吾爱破解论坛)






女朋友上午给我说,昨天本来打算准时下班,结果因为在办公室查询和处理数据速度太慢,一天才完成了几个表格,要是搞不定的话,今天还要加班。
办公室里的老司机们处理起来比较熟练,双屏、三屏电脑或者用函数什么的处理的挺快的。
之前倒是教女朋友用过vlookup函数来查询,但是她感觉太复杂了,只好用python帮她减轻点工作压力吧。



女朋友工作任务主要是查询配件的价格。
每个配件大概有10-15个供应商,每个供应商在每个报价周期中价格是不一定相同的,比方说九月报价100元,十月报价110元等,并且有的供应商在一个表格中有不同的工作簿,查找起来很麻烦,用vlookup函数不是很方便。
现在的操作方法基本上是,记住《配件清单》里面的配件名字,复制一下,然后打开各个供应商的《报价表》,在报价表里找到这个配件名字,然后把各个报价周期中的价格给找到,重新建立一个表格,把这些信息给复制进去就可以了。
老司机一般就用双屏来同时查找,速度会相对快一点,但是这个速度在自动查询上还是渣渣。



中午吃饭的时候大致想了一下,程序操作逻辑:
1.读取文件获得所有“配件名字”;
2.批量读取供应商《报价表》
3.在各个供应商《报价表》中依次搜索“配件名字”,搜索各个报价表中的工作簿的所有信息;
4.根据“配件名字”确定所在的行;
5.根据“配件名字”所在行,读取该行所有信息,即各周期报价
6.将读取到的各个周期报价给进行保存,保存所在位置及文件。

代码如下:
[Python] 纯文本查看 复制代码
import pandas as pd
import os
import easygui as g
import xlrd





path = g.fileopenbox(msg="选择文件", title="选择要查询的文件清单", default='*', filetypes=None)
data = xlrd.open_workbook(path, encoding_override='utf-8')    #打开文件(文件路径)
table = data.sheets()[0]  # 选定表    #第一个工作簿
nrows = table.nrows  # 获取行号
ncols = table.ncols  # 获取列号
names = []   #空列表存储
for i in range(1, nrows):  # 第0行为表头
    alldata = table.row_values(i)  # 循环输出excel表中每一行,即所有数据
    name = alldata[0]  # 取出表中第二列数据
    names.append(name)
print('要查询的信息如下:')
print(names)


def listdir(path, path_name):  # 定义传入存储文件的list函数
    for file in os.listdir(path):    #依次获得返回指定的文件夹包含的文件或文件夹的名字的列表
        file_path = os.path.join(path, file)    #将多个路径组合后返回
        if os.path.isdir(file_path):    #返回一个列表,其中包含有指定路径下的目录和文件的名称
            listdir(file_path, path_name)
        else:
            path_name.append(file_path)       #加入到路径列表中


path_name = []
path = g.diropenbox(msg="请选择文件夹", title="选择要查询的文件夹")
listdir(path,path_name)


for path in path_name:
    file = os.path.split(path)   #拆分分隔符
    file_name = file[1]



    try:
        data = pd.read_excel(path,None)     #读取待查询的excel文件数据,设置None可以生成一个字典,字典中的key值即为sheet名字
        sheet_names = []    #用一个空列表, 准备存储sheet的名字
        for sh_name in data.keys():    #依次便利data.key()中的名字
            # print(sh_name)
            sheet_names.append(sh_name)    #将sheet名字存储进入列表sheet_names
        for sheet_name in sheet_names:    #依次循环获得工作簿
            workbook = pd.read_excel(path, sheet_name=sheet_name)  # 文件路径和sheet名字
            # print(workbook)
            for indexs in workbook.index:  # 用.index进行依次查找
                for i in range(len(workbook.loc[indexs].values)):  # 依次生成
                    for name in names:    #依次循环
                        if (workbook.loc[indexs].values[i] == name):    #如果查找到该关键词
                            print("*" * 50)
                            print("[" + name + "]的位置在" + path + "  的" + sheet_name + "   工作簿中")    #显示位置
                            print('行数:', indexs + 1, '列数:', i + 1)    #行数和列数,从0开始,要加1
                            print("*" * 50)
                            data = pd.DataFrame(pd.read_excel(path,sheet_name=sheet_name))  # 读取数据,设置None可以生成一个字典,字典中的key值即为sheet名字,此时不用使用DataFram,会报错
                            counts = data.loc[indexs]
                            print("[" + name + "]所在行数据如下:")
                            print(counts)  # 获取行名为0这一行的内容
                            df = pd.DataFrame(counts)
                            print(df)
                            file_save_name ='[' + name + ']-在文件[' + file_name + ']中的['+ sheet_name +']工作簿中的行数据'    #关键词所在位置
                            with open(name + '.txt', 'a+',encoding='utf-8') as f:  # 用w格式新建文件,并且用file_name命名,再加上“.txt”后缀,文字编码格式'utf-8'
                                f.write(file_save_name + '\n')  # 将文件位置写入到文本
                                f.close()  # 将文件关闭保存
                            df.to_excel(file_save_name + ".xlsx")   #写入文件

    except Exception as e:
        print(e)
        pass

print("自动查询和生成完毕")



免费评分

参与人数 63吾爱币 +55 热心值 +55 收起 理由
萌鬼出没 + 1 + 1 我很赞同!
diqing + 1 + 1 楼主真是帅爆了。。。py用的真溜,谢谢
M不晓 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
亚瑟摩根 + 1 + 1 谢谢@Thanks!
lymesh + 1 + 1 求大佬出一个python查询的功能,excel,相似对象匹配
wlpkcheng + 1 + 1 就想问你还缺男朋友吗?没别的意思,就是我觉得我可以
nxiaoshu + 1 + 1 热心回复!
angelshowzhe + 1 + 1 我很赞同!
夕日黄 + 1 + 1 就想问你还缺女朋友吗?没别的意思,就是我觉得我可以
minecraft8093 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
SUNPOOLZW + 1 我很赞同!
KARMA07007 + 3 + 1 用心讨论,共获提升!
1201net + 1 + 1 我很赞同!
混元灵通 + 1 + 1 感谢活在梦里的大佬
YCmodest + 1 + 1 用心讨论,共获提升!
随意的个字 + 1 热心回复!
ls03789 + 1 谢谢@Thanks!
C_zZz_K + 1 我很赞同!
oxxo119 + 1 + 1 谢谢@Thanks!请问在那领女朋友
白薇 + 1 我很赞同!
木小生 + 1 + 1 我很赞同!
不想做伸手党 + 1 我很赞同!
Rian_然 + 1 + 1 热心回复!
梦星峰 + 1 + 1 热心回复!
52pojie_user_08 + 1 + 1 谢谢@Thanks!
ldx129 + 1 我很赞同!
lycheeonline + 1 + 1 谢谢@Thanks!
懒散平头哥 + 1 + 1 谢谢@Thanks!
gison + 1 + 1 我有个朋友想问楼主还缺女朋友不?
Assam + 1 谢谢@Thanks!
字数补丁 + 1 + 1 用Python多造几个女朋友吧~
My13 + 1 + 1 帮我用python做个女朋友吧
yunhaiwuyu + 1 + 1 我很赞同!
nishidagea + 1 热心回复!
xhf34242 + 1 + 1 我很赞同!
tak1984 + 1 热心回复!
哇哈哈大笑 + 1 + 1 谢谢@Thanks!
fengzitoo97 + 1 + 1 我很赞同!
6710474 + 1 + 1 热心回复!
yuxuechao + 1 我很赞同!
pere + 1 + 1 热心回复!
Sky_freedom + 1 谢谢@Thanks!
小Jamie + 1 + 1 我很赞同!
无名之涟 + 1 谢谢@Thanks!
edide + 1 + 1 我很赞同!
莲·阿修贝尔· + 1 + 1 你这是把python当成了女友养成计划了
manyouzhe23456 + 1 谢谢@Thanks!
hash多多 + 1 + 1 太顶了
Ly_轮回 + 1 可以很秀,无形之间学习了python
www.52pojie.cn + 1 + 1 我是教练,想来学车么
iYoloPPD + 1 热心回复!
ilove2015 + 1 + 1 老司机,带带我
kai.wu + 1 + 1 我是不懂python吗?不,我是不懂女人!
q314956820 + 1 我终于知道我为何不够优秀了 缺个女朋友
yxdyxd163 + 1 + 1 热心回复!
精灵遗族 + 1 + 1 我很赞同!
xuejiqiao + 1 + 1 我很赞同!
阿飞丶 + 1 + 1 用Python多造几个女朋友吧~
26MountainGhos + 1 + 1 帮我用python做个女朋友吧
玖柒不弃 + 1 + 1 快醒醒,你没女朋友~
辉夜年华 + 1 + 1 凭实力单身,用python造个女朋友吧
linruo218 + 1 + 1 凭实力单身~
福多多 + 1 + 1 凭实力单身~

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zjcxdcq 发表于 2020-10-27 20:25
啥时候做这个啊 大佬?
[Python] 为了让女朋友赶快成为大家的女朋友,我只好忍着心痛用python....
 楼主| 创造太阳 发表于 2020-11-6 09:48
YWSN 发表于 2020-11-5 17:09
大佬,大佬,请教一下怎么用python写一个“按照固定的姓名来筛选和提取表格里相应的姓名,并且提取相应姓名 ...

[Python] 纯文本查看 复制代码
import pandas as pd
import os
import easygui as g
import xlrd







name = g.enterbox(msg="请输入要查询的名字")    #输入名字


def listdir(path, path_name):  # 定义传入存储文件的list函数
    for file in os.listdir(path):    #依次获得返回指定的文件夹包含的文件或文件夹的名字的列表
        file_path = os.path.join(path, file)    #将多个路径组合后返回
        if os.path.isdir(file_path):    #返回一个列表,其中包含有指定路径下的目录和文件的名称
            listdir(file_path, path_name)
        else:
            path_name.append(file_path)       #加入到路径列表中


path_name = []   #空路径列表
path = g.diropenbox(msg="请选择文件夹", title="选择要查询的文件夹")
listdir(path,path_name)


for path in path_name:
    file = os.path.split(path)   #拆分分隔符
    file_name = file[1]

    try:
        data = pd.read_excel(path,None)     #读取待查询的excel文件数据,设置None可以生成一个字典,字典中的key值即为sheet名字
        sheet_names = []    #用一个空列表, 准备存储sheet的名字
        for sh_name in data.keys():    #依次便利data.key()中的名字
            # print(sh_name)
            sheet_names.append(sh_name)    #将sheet名字存储进入列表sheet_names
        for sheet_name in sheet_names:    #依次循环获得工作簿
            workbook = pd.read_excel(path, sheet_name=sheet_name)  # 文件路径和sheet名字
            # print(workbook)
            for indexs in workbook.index:  # 用.index进行依次查找
                for i in range(len(workbook.loc[indexs].values)):  # 依次生成
                    if (workbook.loc[indexs].values[i] == name):    #如果查找到该关键词
                        print("*" * 50)
                        print("[" + name + "]的位置在" + path + "  的" + sheet_name + "   工作簿中")    #显示位置
                        print('行数:', indexs + 1, '列数:', i + 1)    #行数和列数,从0开始,要加1
                        print("*" * 50)
                        data = pd.DataFrame(pd.read_excel(path,sheet_name=sheet_name))  # 读取数据,设置None可以生成一个字典,字典中的key值即为sheet名字,此时不用使用DataFram,会报错
                        counts = data.loc[indexs]
                        print("[" + name + "]所在行数据如下:")
                        print(counts)  # 获取行名为0这一行的内容
                        df = pd.DataFrame(counts)
                        print(df)
                        file_save_name ='[' + name + ']-在文件[' + file_name + ']中的['+ sheet_name +']工作簿中的行数据'    #关键词所在位置
                        with open(name + '.txt', 'a+',encoding='utf-8') as f:  # 用w格式新建文件,并且用file_name命名,再加上“.txt”后缀,文字编码格式'utf-8'
                            f.write(file_save_name + '\n')  # 将文件位置写入到文本
                            f.close()  # 将文件关闭保存
                        df.to_excel(file_save_name + ".xlsx")   #写入文件

    except Exception as e:
        print(e)
        pass

print("查询和生成完毕")

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
公子如玉世无双 + 1 + 1 谢谢@Thanks!

查看全部评分

tbz5300 发表于 2020-10-27 16:23
l943644670 发表于 2020-10-27 16:24
我透,老哥秀的一p,无形中教学了代码。
天上飞来一只 发表于 2020-10-27 16:24
吾爱币,爱心值真多!
ayaoko 发表于 2020-10-27 16:25
python这么牛,什么时候也要学习一下
啥叫破解 发表于 2020-10-27 16:26
你女朋友知道你这么腻害么
ymxck 发表于 2020-10-27 16:27
厉害,佩服!
一场荒唐半生梦 发表于 2020-10-27 16:31
楼主请问下学习python新手入门应该在哪里学习??想尝试学着做些电商类的软件,不知道会不会好难
xinanqq 发表于 2020-10-27 16:31
厉害,大佬膜拜,,
kingkalam 发表于 2020-10-27 16:31
羡慕有这么多猿女朋友
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 02:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表