txt比对

import openpyxl
from openpyxl.styles import PatternFill
from openpyxl.utils import get_column_letter


# 创建excel
xls = openpyxl.Workbook()
sheet = xls.active
xls.remove(xls.active)

# 跳过指定行
skip_line = 0
# 偏移
padding_x = 100
padding_y = 100

sheet1 = xls.create_sheet("表1")
sheet = xls.create_sheet("表2")
sheet2 = xls.create_sheet("merge")

matrix1 = []
title1 = None
with open('txt1.txt', 'r') as fp:
    lines = fp.readlines()
    tmp_y = padding_y
    for idx, line in enumerate(lines):
        if idx < skip_line:
            continue
        line = [x for x in line.strip()]
        if title1 is None:
            title1 = ['']
            title1.extend([padding_x + x for x in range(len(line))])
            sheet1.append(title1)
            sheet2.append(title1)
        line.insert(0, tmp_y)
        tmp_y += 1
        sheet1.append(line)
        sheet2.append(line)
        matrix1.append(line)

for i in range(1, sheet1.max_column + 1):
    sheet1.column_dimensions[get_column_letter(i)].width = 2.5
for i in range(1, sheet.max_column + 1):
    sheet.column_dimensions[get_column_letter(i)].width = 2.5

matrix2 = []
title2 = None
with open('txt2.txt', 'r') as fp:
    lines = fp.readlines()
    tmp_y = padding_y
    for idx, line in enumerate(lines):
        if idx < skip_line:
            continue
        line = [x for x in line.strip()]
        if title2 is None:
            title2 = ['']
            title2.extend([padding_x + x for x in range(len(line))])
            sheet.append(title2)
        # print(line)
        line.insert(0, tmp_y)
        tmp_y += 1
        sheet.append(line)
        matrix2.append(line)

# 保存
# val = ['1', 'X']
idx = 0
red_data = []
sheet2.append([''])
sheet2.append(['X', 'Y'])

for i in range(1, sheet2.max_column + 1):
    sheet2.column_dimensions[get_column_letter(i)].width = 2.5
for x in range(len(matrix1)):
    for y in range(len(matrix1[x])):
        # 跳过指定行前的
        # print(matrix1[x])
        # print(matrix2[x])
        v1 = matrix1[x][y]
        v2 = matrix2[x][y]
        # print(v1, v2)
        # if v1 not in val or v2 not in val:
        #     continue
        if v1 != v2:
            red_data.append([x, y])
            fill = PatternFill("solid", fgColor="f73131")
            sheet2.cell(x + 2, y + 1).fill = fill
            sheet2.append([padding_x + x, padding_y + y - 1, v1, v2])

# 保存
xls.save('数据比对结果.xlsx')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值