Untitled
unknown
plain_text
2 years ago
1.5 kB
3
Indexable
import openpyxl import pandas as pd import os import time from termcolor import colored import difflib def highlight_diff(old, new): diff = difflib.ndiff(old, new) diff_text = ''.join(diff) highlighted = diff_text.replace('-', colored('-', 'green')).replace('+', colored('+', 'green')) return highlighted files = { 'Line 1': 'file1.xlsx', 'Line 2': 'file2.xlsx', 'Line 3': 'file3.xlsx', } data_old = {key: pd.DataFrame(openpyxl.load_workbook(filename, read_only=True, keep_links=False).active.values) for key, filename in files.items()} while True: time.sleep(60) # wait for 60 seconds data_new = {key: pd.DataFrame(openpyxl.load_workbook(filename, read_only=True, keep_links=False).active.values) for key, filename in files.items()} for title, df_old in data_old.items(): df_new = data_new[title] if not df_old.equals(df_new): print(f"Changes in {title}:") diff_df = df_old.compare(df_new) for index, changes in diff_df.iterrows(): print(f"Row {index+1} has changes:") for col in changes.columns.get_level_values(0).unique(): old, new = changes[col]['self'], changes[col]['other'] if pd.isna(old): old = "" if pd.isna(new): new = "" highlighted_changes = highlight_diff(str(old), str(new)) print(f"Column {col+1}: {highlighted_changes}") data_old = data_new
Editor is loading...