【优化】C#小程序集成实现python定时段批量下载电子邮箱附件的bug排除

简介: 【优化】C#小程序集成实现python定时段批量下载电子邮箱附件的bug排除

目录

1、测试问题与现象

2、排查和发现

3、bug危害和改正措施


继上一篇长文(

python实现电子邮件附件指定时间段,批量下载以及C#小程序集成实现_nanke_yh的博客-CSDN博客

https://blog.csdn.net/nanke_yh/article/details/120818221

)中所实现的程序之后,进行了相关的应用和测试,发现了一些bug,这些bug导致的问题比较严重,在这里进行排除和优化。


1、测试问题与现象


将程序拷贝至其他机器进行脱环境测试运行,发现存在秒运行结束现象,然后无文件输出。


2、排查和发现


首先怀疑是python开发的exe在新机器运行失败:直接使用cmd调用exe程序,发现运行结果正常;


再就是检查从c#端输入的参数是否正确:依次检查,发现默认截止日期,textBox5.Text上输出的日期为7位数,因为是月初,day位单数,那么其中的0被省略了。之前的代码:

textBox5.Text = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString();+ DateTime.Now.Day.ToString();;

那么会导致这种现象,但是并不是导致秒运行结束的原因。因为手动输入截止日期还是存在秒运行结束的问题。


最后再次检查发现是保存路径下其中有个文件夹名内使用了空格:更改路径后正常,如此定位该问题所在。


3、bug危害和改正措施


在上面发现了两个bug,第一是截止日期中单月单日会被省略0字符。这将会导致下载和遍历的邮件时间范围对应不上,甚至检索不到该时间范围的邮件。


为此,需要补全被省去的“0”,改动:

string tempmonth, tempday;
if (DateTime.Now.Month.ToString().Length != 2)
{
    tempmonth = "0" + DateTime.Now.Month.ToString();
}
else
{
    tempmonth = DateTime.Now.Month.ToString();
}
if (DateTime.Now.Day.ToString().Length != 2)
{
    tempday = "0" + DateTime.Now.Day.ToString();
}
else
{
    tempday = DateTime.Now.Day.ToString();
}
textBox5.Text = DateTime.Now.Year.ToString() + tempmonth + tempday;

第二个bug则比较致命,因为是传入参数给python的程序运行,只应该传入6个参数,然后由于路径中多了一个空格,使之判断为传入七参数,导致运行失败。为此加上路径判断和提示:

if (FilePath.IndexOf(" ") != -1)
{
   MessageBox.Show("保存路径的文件夹名中存在空格会导致程序执行失败,请重新选择保存路径!", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
   return;
}

改正之后就都正常了,有兴趣的可以下载源码(内部包含.py文件和C#工程文件),自己尝试一下呀。

目录
相关文章
|
12月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
689 1
|
前端开发 JavaScript UED
探索Python Django中的WebSocket集成:为前后端分离应用添加实时通信功能
通过在Django项目中集成Channels和WebSocket,我们能够为前后端分离的应用添加实时通信功能,实现诸如在线聊天、实时数据更新等交互式场景。这不仅增强了应用的功能性,也提升了用户体验。随着实时Web应用的日益普及,掌握Django Channels和WebSocket的集成将为开发者开启新的可能性,推动Web应用的发展迈向更高层次的实时性和交互性。
476 1
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1934 1
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
966 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
机器学习/深度学习 IDE 开发工具
Python集成开发环境的选择
【7月更文挑战第6天】Python集成开发环境的选择
683 2
|
供应链 小程序 API
微信小程序API集成京东库存,移动端销量暴涨!
在数字化时代,微信小程序与京东库存系统集成成为提升移动端销量的关键策略。本文详解如何通过API实现库存实时同步、优化用户体验,推动销量增长50%以上,并结合实际案例与代码示例,为企业提供可落地的解决方案。
|
数据采集 存储 监控
Python爬虫自动化:定时监控快手热门话题
Python爬虫自动化:定时监控快手热门话题
|
SQL 机器学习/深度学习 数据库
SQL与Python集成:数据库操作无缝衔接
在开始之前,确保你已经安装了必要的Python库,如`sqlite3`(用于SQLite数据库)或`psycopg2`(用于PostgreSQL数据库)。这些库提供了Python与SQL数据库之间的接口。
|
测试技术 API 数据安全/隐私保护
Python连接到Jira实例、登录、查询、修改和创建bug
通过使用Python和Jira的REST API,可以方便地连接到Jira实例并进行各种操作,包括查询、修改和创建Bug。`jira`库提供了简洁的接口,使得这些操作变得简单易行。无论是自动化测试还是开发工作流的集成,这些方法都可以极大地提高效率和准确性。希望通过本文的介绍,您能够更好地理解和应用这些技术。
1779 0
|
前端开发 JavaScript API
探索Python Django中的WebSocket集成:为前后端分离应用添加实时通信功能
【7月更文挑战第17天】现代Web开发趋势中,前后端分离配合WebSocket满足实时通信需求。Django Channels扩展了Django,支持WebSocket连接和异步功能。通过安装Channels、配置设置、定义路由和消费者,能在Django中实现WebSocket交互。前端使用WebSocket API连接后端,实现双向数据流,如在线聊天功能。集成Channels提升Web应用的实时性和用户体验,适应实时交互场景的需求。**
974 6

推荐镜像

更多