Python杂俎 —— 自动压缩指定格式文件&自动删除

 |||一、问题场景:

之前写过脚本,在远程主机里连接Oracle,每天自动查询数据,导出csv文件,按日期命名排序。但是每天我需要自己手动压缩然后再复制出来。结果就是一个元旦假期回来,后台堆满了每天的csv文件-=。=#

 

所以想在原本的脚本上新增一个每日自动压缩当天的数据,删除源文件的功能。

 |||二、需求分析:

新增的功能需要满足1.识别指定格式的文件csv——》2.压缩csv文件,按对应日期命名——》3.压缩完成后删除源文件。

 |||三、效果演示:

 

 |||四、源代码:

 

 1 import os
 2 import zipfile
 3 import datetime
 4 import time
 5 
 6 #定义压缩函数
 7 def csv_zip():
 8     path = "C:/Users/Administrator/Desktop/ziptest"
 9     files = os.listdir(path)
10     csv_files = []
11     for f in files:
12         if f.endswith('.csv'):
13             csv_files.append(f)
14             name_date = f[-8:-4]
15     with zipfile.ZipFile('data'+ name_date + '.zip', 'w') as myzip:
16         for csv in csv_files:
17             myzip.write(csv)
18             os.remove(csv)       
19     print(name_date+' Zip Complete')
20     
21 def main(h=12, m=30,s=10):
22     while True:
23         while True:
24             now = datetime.datetime.now()
25             # 到达设定时间,结束内循环 以小时判断为例
26             if now.hour==h:
27                 break
28             # 不到时间就等10秒之后再次检测
29             time.sleep(10)
30         csv_zip()
31         # 设置压缩函数的运行周期
32         #time.sleep(86400)
33         time.sleep(15)
34         
35 main()

 

 

 

posted on 2019-01-05 12:42  AtDoldrums  阅读(525)  评论(0编辑  收藏  举报

导航