我正在做一些测试,我希望将结果输出到Excel表格。这是非常简单的数据 - 只是它是通过还是失败:
test1 PASSED
test2 FAILED
我可以像这样导出到csv文件中:
f = open('TestResults.csv', 'a')
f.write(test + "," + status)
f.close()
这将创建一个2列表,第一列是测试名称,第二列是传递还是失败(状态)。但是,我想格式化输出,以便使用" PASSED"将变成绿色,然后排成一行" FAILED"会变红。我不认为.csv文件可以包含这样的格式,所以它可能需要以某种方式转换它。
我尝试使用格式保存文件,但下次打开时总会将其删除。
如果可能的话,我宁愿在不下载外部模块的情况下这样做。
感谢。
答案 0 :(得分:2)
CSV(逗号分隔值)文件格式不支持格式化。 您可以使用XLSXWriter创建支持格式化的本机Excell文档。他们的网站上有很好的文档。
我知道你不想使用任何外部模块,但这是我唯一的解决方案。
祝你好运!答案 1 :(得分:1)
由于这个目的的主要目的是看到结果,我决定将它发送到一个html文件;使用html,我能够以易于阅读的方式格式化所有内容。
虽然这可能不是最有效的方法,但为了每次添加一个新行,我在我的jython代码中创建了一个字符串,其中包含创建新行所需的html代码 - 然后我插入信息。如果有人好奇,那么html字符串在jython代码中的外观如下:
pageTemplate = "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>" \
"<html>" \
"<head>" \
"<style type='text/css'>" \
"p {margin: 0em 0 0em 0}" \
"</style>" \
"<meta content='text/html; charset=ISO-8859-1'" \
"http-equiv='content-type'>" \
"<title>LogFile</title>" \
"</head>" \
"<body>" \
"<p><a href='%s.%s.png'>%s</a>%s%s</p>" \
"</body>" \
"</html>"
#color codes the status
if status == "PASSED":
status_colored = "<font color='green'>PASSED</font>"
else:
status_colored = "<font color='red'>FAILED</font>"
rest = self.delim + test + self.delim + comment + "\n"
dir = os.path.join(self.path,stamp)
#save new information to the logfile
contents = pageTemplate % (dir, status, stamp, self.delim + status_colored, rest)
logfile = open(self.csvpath, 'a')
logfile.write(contents)
logfile.close()
缺少的信息在代码的其他地方声明。此外,标题被硬编码到html文件本身,而不是通过Jython代码。