15779327169 发表于 2024-4-8 23:13:35

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

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:当然这道题我大差不差的做出来了非常开心!)

FishC 发表于 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 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 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)

cjjJasonchen 发表于 2024-4-9 06:48:06

小甲鱼提供的题目主要是为了复习当天学习的知识,所以建议使用当天学习的方法作答。
如果能再想到其他发作答方法也是极好的。

15779327169 发表于 2024-4-9 17:17:52

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

好嘞,感谢
页: [1]
查看完整版本: 第30讲文件系统第2题,我的方法是否可行?