鱼C论坛

 找回密码
 立即注册
查看: 1391|回复: 10

[已解决]递归函数中的全局变量问题

[复制链接]
头像被屏蔽
发表于 2020-8-3 21:15:08 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-8-3 21:19:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-3 21:20:10 | 显示全部楼层
帖子的复制代码那个怎么搞出来的~


点击编辑器的 <> 按钮
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-3 21:20:17 | 显示全部楼层
复制代码直接点击<>,然后把你的代码复制进去提交就可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-8-3 21:23:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-3 21:24:34 | 显示全部楼层
systmao 发表于 2020-8-3 21:23
谢谢,已经把代码贴上来了。

哈哈 我刚刚已经帮你重新编辑了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-8-3 21:25:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-3 21:29:16 | 显示全部楼层
systmao 发表于 2020-8-3 21:25
哈哈哈哈哈哈 怪不得我说怎么多出来一个code


代码改成这样试试看:

  1. import openpyxl
  2. import os
  3. def search_file(start_dir,target):
  4.     os.chdir(start_dir)
  5.     for each_file in os.listdir(os.curdir):
  6.         ext = os.path.splitext(each_file)[1]
  7.         if ext in target:
  8.             wb = openpyxl.load_workbook(each_file)
  9.             ws = wb['Sheet1']
  10.             file_dict[each_file]=ws['C4'].value
  11.             #找到excel表格,把每个excle中的C4值添加进字典
  12.         if os.path.isdir(each_file):
  13.             search_file(each_file,target)#递归调用
  14.             os.chdir(os.pardir)#递归调用后,返回上一层目录

  15. start_dir = r'E:\\Z\\test'
  16. file_dict=dict()
  17. target = ['.xlsx','.xlx']

  18. search_file(start_dir,target)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-8-3 22:14:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-8-3 22:33:47 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 00:06:13 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-8-4 00:39 编辑
systmao 发表于 2020-8-3 22:33
我尝试了你这个代码,但是这个代码没解决问题。
就是我想要得到 文件名和excle的数值的字典
但是 您给 ...



那这样就好了吧,只不过这个代码在文件夹里面有多个 excel 文件值会被之前的覆盖,只会保留最后一次读取到的文件数据

  1. import openpyxl
  2. import os
  3. def search_file(start_dir,target):
  4.     os.chdir(start_dir)
  5.     file_name = start_dir.rsplit('\\',1)[1]
  6.     for each_file in os.listdir(os.curdir):
  7.         ext = os.path.splitext(each_file)[1]
  8.         if ext in target:
  9.             wb = openpyxl.load_workbook(each_file)
  10.             ws = wb['Sheet1']
  11.             file_dict[file_name]=ws['C4'].value
  12.             
  13.         if os.path.isdir(each_file):
  14.             search_file(each_file,target)
  15.             os.chdir(os.pardir)

  16. start_dir = r'E:\\Z\\test'
  17. file_dict=dict()
  18. target = ['.xlsx','.xlx']

  19. search_file(start_dir,target)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-24 20:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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