Advertisement
Guest User

Untitled

a guest
Jun 20th, 2021
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.99 KB | None | 0 0
  1. from os import getcwd, listdir, path
  2. from ntpath import basename
  3. from re import search, IGNORECASE
  4. from csv import writer, QUOTE_MINIMAL
  5.  
  6. KEYWORDS = ["fang", "reed", "trish", "stella", "rosa"]
  7.  
  8. def makeDB(keys):
  9.     db = {}
  10.     for key in keys:
  11.         db[key] = []
  12.        
  13.     return db
  14.  
  15. def populateDB(db, filePaths):
  16.     for filePath in filePaths:
  17.         keys = parseFile(filePath, db.keys())
  18.         for key in keys:
  19.             db[key].append(filePath)
  20.            
  21.     return db
  22.    
  23.  
  24. def getFilePaths():
  25.     dirPath = getcwd()
  26.     dirContent = listdir(".")
  27.     filePaths = []
  28.    
  29.     for item in dirContent:
  30.         itemPath = path.join(dirPath, item)
  31.         if path.isdir(itemPath):
  32.             itemContent = listdir(itemPath)
  33.             for subitem in itemContent:
  34.                 subitemPath = path.join(itemPath, subitem)
  35.                 if path.isfile(subitemPath):
  36.                     filePaths.append(subitemPath)
  37.            
  38.     return filePaths
  39.    
  40. def parseFile(filePath, keys):
  41.     file = open(filePath, mode="r", encoding="utf8")
  42.     content = file.read()
  43.     foundKeys = []
  44.    
  45.     for key in keys:
  46.         if search(key, content, IGNORECASE):
  47.             foundKeys.append(key)
  48.            
  49.     return foundKeys
  50.    
  51. def generateCSV(db, filePaths):
  52.     keys = db.keys()
  53.     cols = list(keys)
  54.     cols.insert(0, "title")
  55.    
  56.     with open("ficDB.csv", mode='w', encoding="utf8", newline='') as csvFile:
  57.         csvWriter = writer(csvFile, delimiter=',', quotechar='"', quoting=QUOTE_MINIMAL)
  58.         csvWriter.writerow(cols)
  59.        
  60.         for filePath in filePaths:
  61.             row = [basename(filePath)]
  62.             for key in keys:
  63.                 if filePath in db[key]:
  64.                     row.append('X')
  65.                 else:
  66.                     row.append('')
  67.                    
  68.             csvWriter.writerow(row)
  69.  
  70.  
  71. filePaths = getFilePaths()
  72. db = makeDB(KEYWORDS)
  73. db = populateDB(db, filePaths)
  74. generateCSV(db, filePaths)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement