mirror of
https://github.com/aykhans/FileRobot.git
synced 2025-04-17 03:23:14 +00:00
123 lines
3.8 KiB
Python
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) |