鱼C论坛

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

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

[复制链接]
头像被屏蔽
发表于 2020-8-3 21:15:08 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-8-3 21:19:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


点击编辑器的 <> 按钮
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-3 21:20:17 | 显示全部楼层
复制代码直接点击<>,然后把你的代码复制进去提交就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-8-3 21:23:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

哈哈 我刚刚已经帮你重新编辑了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-8-3 21:25:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


代码改成这样试试看:
import openpyxl
import os
def search_file(start_dir,target):
    os.chdir(start_dir)
    for each_file in os.listdir(os.curdir):
        ext = os.path.splitext(each_file)[1]
        if ext in target:
            wb = openpyxl.load_workbook(each_file)
            ws = wb['Sheet1']
            file_dict[each_file]=ws['C4'].value
            #找到excel表格,把每个excle中的C4值添加进字典
        if os.path.isdir(each_file):
            search_file(each_file,target)#递归调用
            os.chdir(os.pardir)#递归调用后,返回上一层目录

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

search_file(start_dir,target)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-8-3 22:14:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-8-3 22:33:47 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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



那这样就好了吧,只不过这个代码在文件夹里面有多个 excel 文件值会被之前的覆盖,只会保留最后一次读取到的文件数据
import openpyxl
import os
def search_file(start_dir,target):
    os.chdir(start_dir)
    file_name = start_dir.rsplit('\\',1)[1]
    for each_file in os.listdir(os.curdir):
        ext = os.path.splitext(each_file)[1]
        if ext in target:
            wb = openpyxl.load_workbook(each_file)
            ws = wb['Sheet1']
            file_dict[file_name]=ws['C4'].value
            
        if os.path.isdir(each_file):
            search_file(each_file,target)
            os.chdir(os.pardir)

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

search_file(start_dir,target)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 11:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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