-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinputModule.py
More file actions
114 lines (96 loc) · 3.58 KB
/
inputModule.py
File metadata and controls
114 lines (96 loc) · 3.58 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import re
import os
import filecmp
import easyocr
import whisper
import pdfplumber
import warnings
import docx
from brisque import BRISQUE
from PIL import Image
from numpy import asarray
warnings.filterwarnings('ignore')
def file_input():
filename = str(input("Enter the filename"))
files = os.listdir()
for file in files:
if file != filename:
if filecmp.cmp(filename, file):
ch = input('Duplicate has been detected press Y to delete or any other key to keep the duplicate')
if ch == "y" or "Y":
os.remove(file)
print("File with filename", file, "has been deleted")
else:
continue
else:
filechecker(filename)
def filetype(filename):
s = re.findall("^.*\.(jpg|JPG|doc|DOC|docx|DOCX|pdf|PDF|txt|TXT|png|PNG|JPEG|jpeg|wav|WAV|MP3|mp3)$", filename)
return (" ".join(s))
def extract_pdf(filename):
with pdfplumber.open(filename) as doc:
text = ""
for page in doc.pages:
text += page.extract_text()
tempTuple = os.path.splitext(filename)
filename = tempTuple[0]
with open(f"{filename}.txt", 'w', encoding='utf-8') as f:
f.write(text)
print("PDF data converted to text file")
def extract_img(filename):
try:
img = Image.open(filename)
numpydata = asarray(img)
obj = BRISQUE(url=False)
score = obj.score(numpydata)
if score <=90:
reader = easyocr.Reader(['en'])
results = reader.readtext(filename, detail=0)
tempTuple = os.path.splitext(filename)
filename = tempTuple[0]
with open(f"{filename}.txt", 'w', encoding='utf-8') as f:
for a in results:
f.write(a)
f.write("\n")
print("Image data converted to text file ")
else:
print("The image file has lot of noise and is unsuitable for extraction of text")
except:
print("The image has lots of noise,hence unsuitable for extraction of text")
def extract_aud(filename):
model = whisper.load_model("large.pt")
result = model.transcribe(filename)
tempTuple = os.path.splitext(filename)
filename = tempTuple[0]
with open(f"{filename}.txt", 'w', encoding='utf-8') as f:
f.write(result["text"])
print("Audio data converted to text file")
def extract_doc(filename):
doc = docx.Document(filename)
text = []
for para in doc.paragraphs:
text.append(para.text)
text1 = '\n'.join(text)
tempTuple = os.path.splitext(filename)
filename = tempTuple[0]
with open(f"{filename}.txt", 'w', encoding='utf-8') as f:
f.write(text1)
print("Doc data converted to text file")
def filechecker(filename):
if filetype(filename) == "pdf" or filetype(filename) == "PDF":
extract_pdf(filename)
if filetype(filename) == "png" or filetype(filename) == "PNG" or filetype(filename) == "jpg" or filetype(
filename) == "JPG" or filetype(filename) == "JPEG" or filetype(filename) == "jpeg":
extract_img(filename)
if filetype(filename) == "wav" or filetype(filename) == "WAV" or filetype(filename) == "mp3" or filetype(
filename) == "MP3":
extract_aud(filename)
if filetype(filename) == "doc" or filetype(filename) == "DOC" or filetype(filename) == "docx" or filetype(
filename) == "DOCX":
extract_doc(filename)
while True:
ch = input("Enter Y to continue and N to stop")
if ch == "y" or ch == "Y":
file_input()
else:
break