Rajeev
Rajeev

Reputation: 46899

comparing contents of two files using python

I have a file name exclusionlist.txt and i have contents in it like

          import os
          import re
          import subprocess
          ......and many more

I have another file named libraries.txt and the contents of this file are

         import mymodule
         import empmodule,os
         import subprocess
         import datetime,logging,re
         .......and many more

My question is that from python how to know that the contents which are in exclusionlist.txt is also present in libraries.txt since here it is jumbled up..

         f = open('exclusionlist.txt', 'r')
         f.read()

         f1= open('libraries.txt', 'r')
         f1.read()

        if (//Is contents of f1 present in f2):
             print libraries found
        else:
             print not found

        f.close()
        f1.close() 

Upvotes: 0

Views: 468

Answers (1)

ninjagecko
ninjagecko

Reputation: 91094

Use set intersection:

def readImports(path):
    with open(path) as f:
        for line in f:
            # lines of form "import ___,___"
            # assuming not of form "from ___ import ___ [as ___]"
            if 'import' in line:
                modules = line.split('import')[1]
                for module in modules.split(','):
                    yield module.strip()

linesInExclusion = set(readImports('exclusionlist.txt'))
linesInLibraries = set(readImports('libraries.txt'))

print(linesInExclusion.intersection(linesInLibraries))

You can do return (line.strip() for line in f if line.strip()!='') if you want to be perfect...

Upvotes: 1

Related Questions