前天晚上的数组越界问题还是没有解决,屡一下思路吧,重新说明下这个问题,也准备请教下大佬,大家集思广益,帮忙解决下这个问题!


万恶的程序根源

Step 1:程序思路讲解  

#捋顺代码的同时加深对代码的理解 ,同时也有助于大佬和小白的阅读

1.程序出发点  

初步出发点:从爬取的酒店开房信息中筛选出邮箱,并按邮箱主机名自动生成对应的文件夹,将爬取的邮箱地址的文本文件保存在该文件夹内。

扩展延伸:爬取的邮箱引入邮箱用户 便于识别和解决BUG


2.程序分析

1.传入文件地址 进行地址递归,着手处理文件 

#写到今天才发现这一步 完全没有必要,调试时完全可以去掉,不过这部分代码也没出错,所以就没管咯

#其实我也是使用之前的代码的,虽然也解决了一些 小Bug,但是可以保证 目前无Bug

#递归函数 getAllDirRE

2.工作函数 即数据分析的主体 

2.1 打开文件 读取文件

2.2 当条件为True,开始处理文件 

2.3 获取邮箱字符串  获取姓名字符串 

###问题点###

2.4 进一步分隔邮箱,获取对应 主机名并进行进一步处理

2.5 目录连接,并使用mkdir创建文件夹

2.6 创建并写入文件

#后面验证无问题 

3.问题描述

数组越界问题工发生了多次,通过思考已经解决了两次 ,第三次未解决,特来求助!

1.读取方式存在问题,f.readiline  具体问题点不明 (根本原因

写这篇文章,会看视频才发现了这个根本原因/汗

    原有的解决方式为加if语句判断字符长度,但是数据结构不同该方法无法解决(表象)

2.加入识别字符判定 已知邮箱字符串末尾字符为m或n 则通过双重if语句可以实现一定时间的运行,但是无法持续运行 ,程序还会报错!

以上,即为报错的全部内容


附:1.代码    2.数据文件


4.报错原因分析

报错原因为:列表下标越界 list index out of range  

因为源数据格式不统一,爬取的数据不全,先读取该行再按下标来分隔的方法有一定的局限性

数据部分行没有第10组邮箱 或者其他问题会导致数据越界!


报错图片

最新问题  去掉问题源“吴纲”之后还是会报错 ,原因未知


以上 真心求解