对于单元测试方法,我想将该方法生成的CSV文件(实际结果)与手动创建的CSV(预期结果)进行比较。
如果第一行的字段完全相同(即标题),并且剩余的行包含相同的信息,则认为文件相等。
以下事项无关紧要:列的顺序,行的顺序(标题行除外),空行,行尾编码,布尔值的编码。
答案 0 :(得分:1)
存储在字典中,相应的csv文件头作为键,第一行作为值
阅读第二个文件并与字典核对。
答案 1 :(得分:1)
现在已经很晚了,所以我将草拟解决方案
csv.reader
输入数据,比较标题,规范化布尔值暂时转置两个列表列表并在标题上对它们进行排序,如
cols = zip(*data)
data = zip(*sorted(cols))
重复两个数据集,以便现在列在两个数据集中对齐
逐行比较两个数据集。
答案 2 :(得分:0)
我建议使用这个方法::
>>> import pyexcel as pe
>>> expected_sheet = pe.load("expected.csv", name_columns_by_row=0)
>>> actual_sheet = pe.load("actual.csv", name_columns_by_row=0)
>>> assert actual_sheet.to_dict() == expected_sheet.to_dict() # where to_dict() returns
>>> # an ordered dict of the content