【Python】按csv文件名称中的日期进行筛选,并复制转移

该博客讲述了如何通过Python对CSV文件进行处理,主要目标是找出跨度超过两年的文件。首先,使用os和shutil库,通过split函数解析文件名获取时间戳,然后计算文件的时间差。如果时间差小于等于2,则复制文件到指定目录。这个过程涉及到文件操作、字符串处理和条件判断,适合熟悉Python基础和文件操作的学习者。
摘要由CSDN通过智能技术生成

老样子先导库,然后定义主函数


import os,shutil

def select(path)

在一个循环中,完成文件名称的断开,提取,计算

由于我的文件日期都很规则,在相同位置存在时间戳,因此,可以利用split(' ',num)[ ] 来截取文件名称的片段,这里遍历的是listdir即列表目录,结果是str类型,我的目的是提取跨度大于两年的csv文件,需要类型转化为int()才可以相减


for i in os.listdir(path) :   #path是众多csv文件所在的文件夹路径

        date=str(i).split('_',6)[5]   #这一堆数指的是按下划线将csv文件名称分七部分,只留下第五部分,因为列表索引是从0开始的,注意!!!只能是字符串的格式来用split()  [ '  ', '  ', '  ' ]

        pre_date=int(date.split('-',1)[0])

        post_date=int(date.split('-',1)[1])

        timestep=post_date-pre_date

        print(timestep)

        

        if timestep<=2:

              old_path=os.path.join(path,i)

              shutil.copy(old_path,new_path) #这里用的copy 比move要慢,文件要上千的话就要稍等片刻了,copy比起move来说,不会将源文件的特定csv文件删除,推荐!

​
import os,shutil

def seek(path):
    count=1
    for i in os.listdir(path):

        # print(count) 此处可略过
        # count+=1  统计当前目录下的csv文件个数
        # filename=os.path.splitext(i) 将结尾的csv和文件名分开,无病呻吟
        # print(filename)

        date=i.split('_',6)[5]
        print(date)
        
        pre_date=int(date.split('-',1)[0])
        post_date=int(date.split('-',1)[1])
        
        a=post_date-pre_date
        print(a)
        if a<2:
            old_path=os.path.join(path, i)
            shutil.copy(old_path,r'D:\Flu\HH_lessthan2y')
   
seek(r'D:\Flu\H')

​

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值