привет, я подготовил программное обеспечение, которое удовлетворяет следующим условиям, но если в папке слишком много файлов (например, 100 000), программа начинает перебрасывать все файлы в
один почтовый файл через определенный промежуток времени.
Я использую Python 3.7
- Будут даты старше 2 дней.
- файлы будут иметь одинаковую дату.
- только файлы с расширением .log.
- дата файла с именем zip-файла.
import os
import datetime
import time
from zipfile import ZIP_DEFLATED, ZipFile
import zipfile
m = os.listdir()
bugun=datetime.datetime.today()
fark=datetime.timedelta(days=2)
dun=(bugun-fark).date()
print ( dun,"tarihinden eski dosyalar zipleniyor")
zaman=time.mktime(dun.timetuple()) #There'il be dates over 2 days old.
for i in m:
if os.stat(i).st_mtime<zaman and i.endswith(".log"): #
x = os.stat(i).st_mtime
y = datetime.datetime.fromtimestamp(x).date()
print(i,"Dosyası Sıkıştırılıyor")
if not os.path.exists(str(y)+".zip"):
try:
import zlib
mode = zipfile.ZIP_DEFLATED
except:
mode = zipfile.ZIP_STORED
zip_dosyasi = (str(y)+".zip")
zip = ZipFile(zip_dosyasi, 'w', mode)
print (zip_dosyasi,"dosyası oluşturuldu")
zip.write(i)
print(i,"Dosyası" ,zip_dosyasi,"Zip Klasörüne Taşındı")
os.remove(i)
time.sleep(0.1)
print("İşlem Tamamlandı")