如何用robotframework提取中文文件名并去掉后缀成?
摘要:问题背景 项目上有个模型文件一直在变动,但是自动化脚本里面导入该模型是把模型名称写死了的,因此更新了模型文件之后,自动化测试代码里面为了导入该文件也一直要修改,所以想通过模糊匹配文件名称来获取该文件名称并导入。 解决方案 使用List Fi
问题背景
项目上有个模型文件一直在变动,但是自动化脚本里面导入该模型是把模型名称写死了的,因此更新了模型文件之后,自动化测试代码里面为了导入该文件也一直要修改,所以想通过模糊匹配文件名称来获取该文件名称并导入。
解决方案
使用List Files In Directory关键字列出目录下面符合模糊匹配的文件名称,该关键字返回一个列表,获取列表中的第一个文件名称(项目中该文件名称前缀固定,后面携带的日期在变化)
${list}= List Files In Directory ${filepath}/mdaf/common/中文/应急中心/EMC_Package/ pattern=DC资源池级应急*
Log ${list}
${dc_model}= Set Variable ${list[0]}
Log ${dc_model}
${file_name} Remove String ${dc_model} .zip
Set Suite Variable ${dc_file_name} ${file_name}
踩的坑
最开始直接AI提供的方案是使用
{dc_model}= Evaluate str('{dc_model}')
{filename_without_ext}= Evaluate '{dc_model}'.replace('.zip', '')
结果却报错了UnicodeDecodeError: 'utf8' codec can't decode byte 0xe8 in position 0: unexpected end of data 类似的这种报错都是字符编码格式的。
出现这个问题的原因是使用了python的模块去处理字符串,默认转成了unicode字符串。
