2025年4月15日 星期二 乙巳(蛇)年 正月十六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

Python3先获取用户想要处理的表格名字,返回文件的全路径地址

时间:12-09来源:作者:点击数:14

导入的ExcelUtil包:Python的openpyxl封装实现读取表格数据 openpyxl读取表格数据

  • #!/usr/bin/env python
  • # coding=utf-8
  • # 先获取用户想要处理的表格名字,返回文件的全路径地址
  • import os
  • from process_excel import ExcelUtil
  • class Get_file(object):
  • def __init__(self):
  • self.path = os.path.dirname(os.getcwd())
  • # 获取当前目录下所有文件
  • dirlist = os.listdir(self.path)
  • print(self.path)
  • # 存放所有xlsx格式表格
  • self.excel_list = []
  • #列表里面是字典,每一组字典就是表格序号和表格名字[{},{}]
  • self.company_list = []
  • for i in dirlist:
  • if os.path.splitext(i)[1] == '.xlsx':
  • self.excel_list.append(i)
  • def company_info(self):
  • # 有表格的情况
  • if len(self.excel_list) > 0:
  • print("目录下共有以下符合要求的表格:")
  • print("*" * 54)
  • for j in range(len(self.excel_list)):
  • excel_dic = {}
  • excel_dic[j+1] = self.excel_list[j]
  • self.company_list.append(excel_dic)
  • print(excel_dic)
  • print("*" * 54)
  • while True:
  • key_company = input("请输入要上传的表格名称关键字:")
  • key_list = []
  • value_list = []
  • if key_company != "":
  • for company_dic in (self.company_list):
  • # company_dic是一个表格信息字典
  • for value_company in company_dic.values():
  • if key_company in value_company:
  • for key, value in company_dic.items():
  • # 保存key值
  • key_list.append(key)
  • # 保存value值
  • value_list.append(value)
  • if len(key_list) != 0 :
  • print("====================共%s条相关表格信息==================" % (len(key_list)))
  • print("{:^10}\t{:^23}".format("表格序号", "表格名称"))
  • for i in range(len(key_list)):
  • print("{:^10}\t{:^23}".format(key_list[i], value_list[i]))
  • # 判断开关,如果有表格信息,才会去提示用户输入序号
  • switch = True
  • break
  • else:
  • print("ERROR:未找到相关的表格信息,请重试!")
  • # 防止只输入回车键
  • else:
  • print("ERROR:输入有误,请重试!")
  • print("=" * 54)
  • while True:
  • if switch:
  • try:
  • ID_key = int(input("请输入相应表格一模一样的序号:"))
  • # 防止用户输入回车
  • if ID_key != "":
  • if ID_key in key_list:
  • num = key_list.index(ID_key)
  • print("即将上传文件:%s"%(value_list[num]))
  • # print(self.path + "/" + value_list[num])
  • file_Path = self.path + "/" + value_list[num]
  • data = ExcelUtil(file_Path).judge_excel()
  • if data[0]['判断值'] == "":
  • data = self.process_data(file_Path)
  • # Get_file().company_info()
  • return (self.path + "/" + value_list[num],data)
  • else:
  • print("ERROR:您输入的序号不在以上信息中,请重试!")
  • else:
  • print("ERROR:输入有误,请重试!")
  • except:
  • print("ERROR:输入有误,请重试!")
  • else:
  • print("目录下未找到符合要求的表格,请核实!")
  • # 执行bat文件防止闪退
  • input("请按回车键继续...")
  • def process_data(self,file_Path):
  • data = ExcelUtil(file_Path).judge_excel()
  • return data
  • # 因为先要写入表格数据所以要执行两遍
  • class process_data(object):
  • def __init__(self):
  • self.path = os.path.dirname(os.getcwd())
  • # 获取当前目录下所有文件
  • dirlist = os.listdir(self.path)
  • print(self.path)
  • # 存放所有xlsx格式表格
  • self.excel_list = []
  • #列表里面是字典,每一组字典就是表格序号和表格名字[{},{}]
  • self.company_list = []
  • for i in dirlist:
  • if os.path.splitext(i)[1] == '.xlsx':
  • self.excel_list.append(i)
  • def company_info(self):
  • # 有表格的情况
  • if len(self.excel_list) > 0:
  • print("目录下共有以下符合要求的表格:")
  • print("*" * 54)
  • for j in range(len(self.excel_list)):
  • excel_dic = {}
  • excel_dic[j+1] = self.excel_list[j]
  • self.company_list.append(excel_dic)
  • print(excel_dic)
  • print("*" * 54)
  • while True:
  • key_company = input("请输入要上传的表格名称关键字:")
  • key_list = []
  • value_list = []
  • if key_company != "":
  • for company_dic in (self.company_list):
  • # company_dic是一个表格信息字典
  • for value_company in company_dic.values():
  • if key_company in value_company:
  • for key, value in company_dic.items():
  • # 保存key值
  • key_list.append(key)
  • # 保存value值
  • value_list.append(value)
  • if len(key_list) != 0 :
  • print("====================共%s条相关表格信息==================" % (len(key_list)))
  • print("{:^10}\t{:^23}".format("表格序号", "表格名称"))
  • for i in range(len(key_list)):
  • print("{:^10}\t{:^23}".format(key_list[i], value_list[i]))
  • # 判断开关,如果有表格信息,才会去提示用户输入序号
  • switch = True
  • break
  • else:
  • print("ERROR:未找到相关的表格信息,请重试!")
  • # 防止只输入回车键
  • else:
  • print("ERROR:输入有误,请重试!")
  • print("=" * 54)
  • while True:
  • if switch:
  • try:
  • ID_key = int(input("请输入相应表格一模一样的序号:"))
  • # 防止用户输入回车
  • if ID_key != "":
  • if ID_key in key_list:
  • num = key_list.index(ID_key)
  • print("即将上传文件:%s"%(value_list[num]))
  • # print(self.path + "/" + value_list[num])
  • file_Path = self.path + "/" + value_list[num]
  • data = ExcelUtil(file_Path).judge_excel()
  • if data[0]['判断值'] == "":
  • Get_file().company_info()
  • return (self.path + "/" + value_list[num],data)
  • else:
  • print("ERROR:您输入的序号不在以上信息中,请重试!")
  • else:
  • print("ERROR:输入有误,请重试!")
  • except:
  • print("ERROR:输入有误,请重试!")
  • else:
  • print("目录下未找到符合要求的表格,请核实!")
  • # 执行bat文件防止闪退
  • input("请按回车键退出...")
  • os._exit(0)
  • if __name__ =="__main__":
  • get_file = Get_file()
  • get_file.company_info()

使用:

  • from get_file import Get_file
  • # 先调取:获取用户想要处理的表格名字,返回文件的全路径地址方法
  • filePath,data = Get_file().company_info()
  • company_list = []
  • if filePath:
  • for i in range(len(data)):
  • company_list.append(data[i]['商家名称'])
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐