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

业务说明:

此应用类主要实现功能:
  • 读取数据提取表字段A和字段B
  • 遍历data根目录下的所有文档
  • 判断是否有以字段A命名的目录文件,若无,执行for
  • 若有此目录,则遍历改目录下的所有文件
  • 利用字段A在产品关键字表中获取其别名字段C
  • 第二层判断是否有以字段C命名的文件
  • 无,执行for;有返回目标文件夹路径
  • 最后遍历目标路径依次执行find_total_data业务处理函数即可
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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、关键字表

关键字表

最后

以上就是活泼棉花糖最近收集整理的关于文件遍历(数据表关联获取目标文件具体路径)的全部内容,更多相关文件遍历(数据表关联获取目标文件具体路径)内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部