script/Testlink转换工具/ExcelToXml3/converter.py

100 lines
3.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
from ExcelToXml import ExcelToXml
import sys
import os
# 定义后缀过滤列表
filter_list = ['.xls']
# 说明检查output文件夹是否存在不存在则创建
# 参数:无
# 返回值:输出路径
def get_output_dir():
output = os.path.join(os.getcwd(), 'output')
if not os.path.exists(output):
os.mkdir(output)
return output
# 说明遍历指定文件夹扫描Excel文件
# 参数:无
# 返回值:输出文件夹下所有文件路径列表
def get_input_excel(input_dir):
files = []
# input文件夹不存在
if not os.path.exists(input_dir):
return files
else: # 遍历该目录下所有文件
for _, _, file_list in os.walk(input_dir):
for filename in file_list:
file_path = os.path.join(input_dir, filename)
# 获取文件后缀
ext = os.path.splitext(file_path)[1]
# 满足要求的则放入
if ext in filter_list:
files.append(file_path)
return files
# 将命令行参数转换为对应的文件输入
def get_command():
excels = []
input_dir = ''
# 未传入参数,使用默认设置
if len(sys.argv) == 1:
input_dir = os.path.join(os.getcwd(), 'input')
excels = get_input_excel(input_dir)
elif len(sys.argv) == 2: # 传入了参数
input_dir = sys.argv[1]
# 如果传入的是单个文件
if os.path.isfile(input_dir):
ext = os.path.splitext(input_dir)[1]
# 判断是否是Excel
if ext not in filter_list:
print('ERROR请传入正确的Excel文件')
return False
excels.append(input_dir)
elif os.path.exists(input_dir): # 如果是文件夹
excels = get_input_excel(input_dir)
return excels, input_dir
# 说明将指定Excel转换为TestLink使用的xml文件
# 参数:无
# 返回值成功返回True
def converter():
# 获取命令行参数
excels, input_dir = get_command()
# 校验文件输入
if len(excels) == 0:
print('ERROR: 未发现输入的Excel文件')
return False
print('--------------------------------')
print('INFO: 当前输入文件为:', input_dir)
output = get_output_dir()
# 遍历文件输出
print('INFO: 开始执行Excel转xml...')
print('--------------------------------')
for excel in excels:
# 文件名
_, filename = os.path.split(excel)
# 实例化对象
xm = ExcelToXml(excel)
if not xm.create_tree():
print(u'ERROR: [{}]转换发生错误'.format(filename))
print('------------------------')
continue
# 写入xml文件
xm.write_xml(output)
result = xm.get_result()
print('[{}]转换成功!'.format(filename))
print('Sheet总数为\t', result[0])
print('模块总数为:\t', result[1])
print('案例总数为:\t', result[2])
print('------------------------')
print('INFO: 全部转换成功,已输出到文件夹:', output)
return True
if __name__ == "__main__":
# 开始转换
converter()