hi,我准备了满足以下条件的软件,但如果文件夹中文件太多(例如100,000个),程序将开始将所有文件放入一个文件夹中。 一定时间后的单个zip文件。
我正在使用python 3.7
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ı")
答案 0 :(得分:0)
将新的ZipFile
分配给全局变量zip
时,将失去与先前绑定到zip
的对象的绑定。将其分配到函数中,以使用不同的局部变量进行zip
的每个分配。
documentation for this library不能提供有关问题根源或我认为的解决方案的线索。
此外,如果您从未调用过import zlib
,又为什么呢?另外,没有理由将import语句放入for循环内。使用Python导入文件后,该库的其他import语句将被忽略。