FileRobot/main.py
Ayxan Shahsuvarov 4ef60ab898 version_1
2021-08-11 00:26:25 +03:00

123 lines
3.8 KiB
Python

import os
class Copy_file():
def __init__(self, file_name, walk, exception_folder, exception_files):
self.exception_folder = exception_folder
self.exception_files = exception_files
self.file_name = file_name
self.file_name_dot = '.' + self.file_name
self.dcm = os.walk(walk)
self.cnt = 0
self.d = []
self.l = ['a']
self.file_search()
def __file_makedirs(self, x = 1):
try:
os.makedirs(self.doc_address)
except FileExistsError:
try:
os.makedirs(f'{self.doc_address}_{x}')
self.doc_address = f'{self.doc_address}_{x}'
except FileExistsError:
x += 1
self.__file_makedirs(x)
def file_search(self):
for i in self.dcm:
if i[0] in self.exception_folder:
continue
for k in i[2]:
if i[0] + '\\' + k not in self.exception_files and os.path.splitext(k)[1].upper() == self.file_name_dot:
k2 = k
k = k.lower()
z = 0
x = 'a'
if k in self.l:
splitext = os.path.splitext(k)
splitext2 = os.path.splitext(k2)
while x in self.l:
z += 1
x = splitext[0] + '_' + str(z) + splitext[1]
x2 = splitext2[0] + '_' + str(z) + splitext2[1]
else:
x2 = k2
x = k
self.l.append(x)
self.d.append((i[0], k2, x2))
self.cnt += 1
def file_copy(self, new_folder):
self.doc_address = new_folder + '\\' + self.file_name
self.__file_makedirs()
for i, k, j in self.d:
with open(f'{i}\\{k}','rb') as file:
a = file.read()
with open(f'{self.doc_address}\\{j}','wb') as file:
file.write(a)
def file_delete(self):
for i, k, j in self.d:
os.remove(i + '\\' + k)
def __len__(self):
return len(os.listdir(self.doc_address))
class Search_file():
def __init__(self, file_name, walk):
self.file_name = file_name
self.walk = walk
self.l = []
self.cnt = 0
def file_search(self):
for i in os.walk(self.walk):
for j in i[2]:
if j == self.file_name:
self.l.append(i[0] + '\\' + j)
self.cnt += 1
def file_search_lower(self):
file_name_lower = self.file_name.lower()
for i in os.walk(self.walk):
for j in i[2]:
if j.lower() == file_name_lower:
self.l.append(i[0] + '\\' + j)
self.cnt += 1
def file_search_extention(self):
for i in os.walk(self.walk):
for j in i[2]:
if os.path.splitext(j)[0] == self.file_name:
self.l.append(i[0] + '\\' + j)
self.cnt += 1
def file_search_lower_extention(self):
file_name_lower = self.file_name.lower()
for i in os.walk(self.walk):
for j in i[2]:
if os.path.splitext(j.lower())[0] == file_name_lower:
self.l.append(i[0] + '\\' + j)
self.cnt += 1
def file_delete(self):
for i in self.l:
os.remove(i)