为了让女朋友赶快成为办公室里的老司机,我只好趁着中午吃饭的时候用python研究了...
我给女朋友发了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.将读取到的各个周期报价给进行保存,保存所在位置及文件。
代码如下:
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()# 选定表 #第一个工作簿
nrows = table.nrows# 获取行号
ncols = table.ncols# 获取列号
names = [] #空列表存储
for i in range(1, nrows):# 第0行为表头
alldata = table.row_values(i)# 循环输出excel表中每一行,即所有数据
name = alldata# 取出表中第二列数据
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
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.values)):# 依次生成
for name in names: #依次循环
if (workbook.loc.values == 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
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("自动查询和生成完毕")
啥时候做这个啊 大佬?
为了让女朋友赶快成为大家的女朋友,我只好忍着心痛用python.... YWSN 发表于 2020-11-5 17:09
大佬,大佬,请教一下怎么用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
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.values)):# 依次生成
if (workbook.loc.values == 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
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("查询和生成完毕")
不明觉厉。LZ大大 你女朋可以很爱你 我透,老哥秀的一p,无形中教学了代码。 吾爱币,爱心值真多! python这么牛,什么时候也要学习一下 你女朋友知道你这么腻害么 厉害,佩服! 楼主请问下学习python新手入门应该在哪里学习??想尝试学着做些电商类的软件,不知道会不会好难{:301_971:} 厉害,大佬膜拜,, 羡慕有这么多猿女朋友 {:1_893:}