我是靠谱客的博主 活泼棉花糖,最近开发中收集的这篇文章主要介绍文件遍历(数据表关联获取目标文件具体路径),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

业务说明:

此应用类主要实现功能:
  • 读取数据提取表字段A和字段B
  • 遍历data根目录下的所有文档
  • 判断是否有以字段A命名的目录文件,若无,执行for
  • 若有此目录,则遍历改目录下的所有文件
  • 利用字段A在产品关键字表中获取其别名字段C
  • 第二层判断是否有以字段C命名的文件
  • 无,执行for;有返回目标文件夹路径
  • 最后遍历目标路径依次执行find_total_data业务处理函数即可
import xlrd
import os
import pandas as pd
class Working_for_files(object):
root_path = 'D:/data/'
key_word_path = 'D:/product_name/产品关键字表.xlsx'
get_data_path = 'D:/product_name/数据提取表.xlsx'
def load_files(self):
data = self.load_search_data()
# 字段A,字段B(目标处理数据)
for i in data:
productName = i[0]
TradeDate = i[1]
file_lists = os.listdir(self.root_path)
# 返回根目录下所有子目录集合
if TradeDate in file_lists:
# 产品关键字表信息匹配
workbook1 = xlrd.open_workbook(self.key_word_path)
sheet1_ = workbook1.sheet_by_name('Sheet1')
col_1 = sheet1_.col_values(0)
list_names = sheet1_.col_values(0)[1:]
for product_name in list_names:
if product_name == productName:
name = sheet1_.row_values(col_1.index(product_name))
productName_ = name[1]
file_path = self.root_path + TradeDate + '/'
files = os.listdir(file_path)
# 返回子目录下所有文件名集合
for file in files:
if productName_ in file:
total_file_path_ = file_path + file
yield total_file_path_
def load_search_data(self):
i = 0
data = pd.read_excel(self.get_data_path, header=0).ix[:,:2]
productName = list(data['字段A'])
for time_ in list(data['字段B']):
yield productName[i], str(time_)[:10]
i += 1
def find_total_data(self, file_path):
# 业务处理函数
pass
def main(self):
files = self.load_files()
i = 0
for file in files:
print(file)
self.find_total_data(file)
i += 1
print('一共%d个文件' % i)
if __name__ == '__main__':
# 主入口
Working_for_files = Working_for_files()
Working_for_files.main()

数据表字段样式

1、数据提取表

数据提取表

2、关键字表

关键字表

最后

以上就是活泼棉花糖为你收集整理的文件遍历(数据表关联获取目标文件具体路径)的全部内容,希望文章能够帮你解决文件遍历(数据表关联获取目标文件具体路径)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部