鱼C论坛

 找回密码
 立即注册
查看: 580|回复: 4

第30讲文件系统第2题,我的方法是否可行?

[复制链接]
发表于 2024-4-8 23:13:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import os
def search(catalogue,file_name):
    catalogue = os.walk('D:\\法考主观题')
    for a, b, c in catalogue:
        for each in c:
            path_name = a + '\\' + each
            if file_name in path_name:
                print(path_name)

catalogue = os.walk(input('请输入待查找的初始目录:'))
file_name = input('请输入文件名:')
search(catalogue,file_name)
追问:
实在羞愧,这道题的这个os.walk方法是我在CSDN论坛里翻阅os模块内置函数中搜索到的,相对小甲鱼的标准答案更加的便利,
我想问,使用这些在学习中尚未掌握的“高阶”函数,是否会影响学习的效率和进度。(PS:当然这道题我大差不差的做出来了非常开心!)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-4-8 23:13:51 | 显示全部楼层
你的方法基本可行,但有一个小问题需要注意:在函数 `search` 中,你给参数 `catalogue` 重新赋值了,而这会导致你没有正确传递实参 `catalogue` 给函数。

为了解决这个问题,你可以不给 `search` 函数传递 `catalogue` 参数,而是直接在函数内部调用 `os.walk`:
import os

def search(file_name):
    catalogue = os.walk(input('请输入待查找的初始目录:'))
    for a, b, c in catalogue:
        for each in c:
            path_name = a + '\\' + each
            if file_name in path_name:
                print(path_name)

file_name = input('请输入文件名:')
search(file_name)

至于你的追问,使用一些高级函数或模块是完全可以帮助提高学习效率和进度的。事实上,在实际开发中,我们经常会使用一些现成的库来提高编程效率。只要你理解了基本的编程概念和语法,你就可以尝试使用这些高级函数和模块。

当然,在学习过程中,我们也要根据自己的能力和需求来选择使用哪些高级功能。有时候,我们可以先掌握基础知识,再逐渐深入学习高级功能。记住,学习编程是一个持续的过程,重要的是保持学习的兴趣和动力。祝你在编程的旅途中越来越顺利!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-9 01:43:24 | 显示全部楼层
本帖最后由 jackz007 于 2024-4-9 01:52 编辑

           没必要两次使用 os  . walk()
import os

dx = input('请输入待查找的初始目录:')
if not dx :                                           # 如果 dx 为空串
    dx = os . getcwd()                                # 那么起始路径就是当前目录
fx = input('请输入文件名:')
if fx :                                               # 只有 fx 不为空串才进行查找
    for a , b , c in os . walk(dx) :
        for each in c :
            if each . lower() == fx . lower() :       # 比较文件名,忽略字母大小写    
                path_name = a + '\\' + each
                print(path_name)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-9 06:48:06 From FishC Mobile | 显示全部楼层
小甲鱼提供的题目主要是为了复习当天学习的知识,所以建议使用当天学习的方法作答。
如果能再想到其他发作答方法也是极好的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-9 17:17:52 | 显示全部楼层
cjjJasonchen 发表于 2024-4-9 06:48
小甲鱼提供的题目主要是为了复习当天学习的知识,所以建议使用当天学习的方法作答。
如果能再想到其他发作 ...

好嘞,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 08:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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