鱼C论坛

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

求助!第30课第3题我这方法出错,找不到原因。

[复制链接]
发表于 2018-12-5 15:40:53 | 显示全部楼层 |阅读模式

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

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

x
题目:3. 编写一个程序,用户输入开始搜索的路径,查找该路径下(包含子文件夹内)所有的视频格式文件(要求查找mp4 rmvb, avi的格式即可),并把创建一个文件(vedioList.txt)存放所有找到的文件的路径。
我想查找目录下“.txt"和".py”类型的文件,我只设置了一个参数。我的代码如下:

import os
search_dir=input("请输入待查找的初始目录:")
content=[]
def search_file(search_dir):
    os.chdir(search_dir)
    all_file = os.listdir(".")
    for each_file in all_file:
        fomat = os.path.splitext(each_file)[1]
        if geshi in [".py",".txt"]:
                content.append(os.getcwd()+each_file+"\n")
        if os.path.isdir(each_file):
                search_file(each_file)
                os.chdir("..")
    return content
search_file(search_dir)
d=open(".txt和.py的文件列表.txt","w")
d.writelines(content)
d.close


然后就出错:RecursionError: maximum recursion depth exceeded in comparison

求助大家能帮我解答疑惑
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-5 15:56:31 | 显示全部楼层
递归深度报错,你的递归只有递,没有归。

os.chdir后面括号里的应该是个路径。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-5 16:06:33 | 显示全部楼层
heidern0612 发表于 2018-12-5 15:56
递归深度报错,你的递归只有递,没有归。

os.chdir后面括号里的应该是个路径。

可是“..”不是上一路径吗,我觉得我可能哪里没有理解到,请问该如何修改呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-5 16:42:17 | 显示全部楼层
花扯扯 发表于 2018-12-5 16:06
可是“..”不是上一路径吗,我觉得我可能哪里没有理解到,请问该如何修改呢?

我改了两个地方:第一个是:if geshi in [".py",".txt"]:这里把geshi换回了format(忘改了)。第二个是将 os.chdir("..")括号里的“..”改成了os.pardir,然后就好了。然后我又把os.pardir改回了“..”,依然运行成功,所以第一个改的地方出的错误?我这脑袋昨晚也是够晕的,谢谢你啦!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-5 16:43:27 | 显示全部楼层
你的geshi是什么鬼
改成fomat好像没有出错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-5 18:59:24 | 显示全部楼层
塔利班 发表于 2018-12-5 16:43
你的geshi是什么鬼
改成fomat好像没有出错

谢谢回复!我昨晚脑子进水了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-5 19:28:46 | 显示全部楼层
塔利班 发表于 2018-12-5 16:43
你的geshi是什么鬼
改成fomat好像没有出错

不好意思,我想问个问题,这里content不是全局变量吗,为什么也能被函数修改啊?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-5 19:42:10 | 显示全部楼层
花扯扯 发表于 2018-12-5 19:28
不好意思,我想问个问题,这里content不是全局变量吗,为什么也能被函数修改啊?

就是因为是全局变量才能被修改
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-5 19:56:51 | 显示全部楼层
塔利班 发表于 2018-12-5 19:42
就是因为是全局变量才能被修改

可是函数不是只能访问打印全局变量吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-5 20:00:17 | 显示全部楼层
你没有赋值,只是append没关系
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-9 19:32:17 | 显示全部楼层
塔利班 发表于 2018-12-5 20:00
你没有赋值,只是append没关系

非常感谢回复!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-11 17:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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