-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpdfsearch.py
executable file
·50 lines (42 loc) · 1.54 KB
/
pdfsearch.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#! /usr/bin/python
import os
import sys
import glob
rootfolder = str(sys.argv[1])
print "Root Folder: " + rootfolder
def get_search_arguments():
search_list = sys.argv
search_term = ""
index = 2
while index < len(search_list):
search_term = search_term + " " + search_list[index]
index += 1
print "Search Term: " + search_term
return search_term
def recursive_search_pdf(file_path):
for dirname in os.walk(file_path):
for filename in glob.glob(os.path.join(dirname[0], '*.PDF')):
print "Checking File: " + filename
search = get_search_arguments()
print "search: " + search
if does_contain_search_term(search, filename):
move_pdf_to_destination(search, filename)
def create_destination_folder_for_move(search_string):
foldername = search_string.lower()
print("Creating Destination Folder: " + foldername)
os.popen("mkdir '" + foldername +"'")
return foldername
def does_contain_search_term(search, filename):
stream = os.popen("pdftotext " + filename + " - | grep -i '" + search + "'")
output = stream.read()
if output:
print "Found Match: " + search
return True
else:
print "No Match Found"
return False
def move_pdf_to_destination(search, pdf_filename):
foldername = create_destination_folder_for_move(search)
print("Moving PDF File: " + pdf_filename + " to " + foldername)
os.popen("mv '" + pdf_filename + "' '" + foldername + "'")
recursive_search_pdf(rootfolder)