Skip to main content

Finding difference between 2 files in Python

In this post, we will take a look at how to compare two files using Python.

 

I was tasked to compare 2 files and then list the differences between them using Python.

Initially, I started with filecmp module, but even with the function parameter ‘shallow’ set to false, the Boolean result was not enough.

Sure, it can act as an indicator to take some action, but it will not list the differences.

 

I was looking for something more visual, something like color coding and not like the git diff output, which is not very user-friendly.

But, another Python internal module, difflib helped me to get the job done.

 

Inside Difflib, HtmlDiff is what I was looking for.

The differences were highlighted with 3 different colors and also the line numbers were indicated in a table to locate the differences.

The results are quite self-explanatory and it is easier to explain the differences to other people.


Code for generating the above difference table:


Note: File1.txt and File2.txt should be created in the same directory as the script before running the code.

 

My Opinion

HtmlDiff was the best solution for me. Also, I had a template that I used for generating the difference report. The difference tables result from the HtmlDif.make_file output was extracted and added to the template report using BeautifulSoup.

Multiple other parameters of the HtmlDiff class can be changed to control the table headers, columnwidth, etc. Do check documentation for more details.


Thank You!!

Comments

Popular posts from this blog

PyMuPDF vs PDFMiner

 As a developer , I was tasked to extract specific data from a PDF. Upon analysing it further, certain patterns were found based on keywords in the document. Since I was using Python language for the task I found 2 tools quite useful which are PyMuPDF and PDFMiner. These tools can then be used to extract the text from a page on which regular expression can be applied to further extract relevant data.     Next, we are going to take a deeper look into these tools, specifically focusing on the pros and cons of each.     PyMuPDF   Docs , PIP package Pros Simple and understandable API Extensive tools to work with text, images, and graphics Available as a PIP package (pip install PyMuPDF) Better support for a range of symbols comparer to PyPDF2   Cons Parsed text is not in sequence Dependency on other package-Fitz Text sequence information lost during extraction     PDFMiner   Docs ,  PIP package ...

Adding existing Anaconda environment to Jupyter notebook

In this post we are going to take a look at adding Anaconda environment to Jupyter notebook. Recently, I was working on a CSV file and wanted to work with Pandas package for tabular data manipulation using Python. The problem was even if I install Pandas package, I would have to install other Data Science package as needed. But, the Anaconda environment was already setup on my laptop, which I want to reuse.   Today, we will look into how to reuse the Anaconda environment within the Jupyter Notebook.   There are 4 basic steps to be followed for adding the environment: 1. Create a conda environment Go to Conda command prompt(Run in Admin mode) Run the following command: conda create –-name newenv O/P:   What if there is an existing conda environment? Go to Conda command prompt(No need for Admin mode) Run the following command: conda env list O/P: Since there was only one environment, only one entry was displayed. ‘*’ indicates the cur...