[Python] 批量获取文件夹中创建日期并将其以时间戳形式加入文件名

当处理大量数据样本时,有时会遇到批量给文件打时间戳的需求,手动操作起来难以想象,这里给大家分享一个利用python批量为文件夹中文件打时间戳的方法:

  • Key issue / 核心问题

获取文件创建(修改)日期并将此部分信息整合入文件名

  • Flowchart / 流程图

流程图

  • Code / 代码
import os
import datetime

path=os.path.abspath('.')
path_files = path+'/files'
path_target = path+'/converted'

for files in os.listdir(path_files):
    file_mtime = os.path.getmtime(os.path.join(path_files,files)) #get timeinfo in float form
    file_mtime = datetime.datetime.fromtimestamp(file_mtime) #convert float time into date objective
    file_mtime = datetime.datetime.strftime(file_mtime, '%Y%m%d') #convert date obj. to str in format yyyymmdd

    fname=os.path.splitext(files)[0] #remove extensions in filename
    fname=fname+'-T'+file_mtime #add timestamp information
    fname= fname+os.path.splitext(files)[1] #add extension info.and

    file_src=os.path.join(path_files,files)
    file_tar=os.path.join(path_target,fname)
    os.rename(file_src,file_tar) #rename files with timestamp info.
  • useful gadget / 一些有用的“升级”组件
    补充两个有用的"小组件“:
    1)有时候文件夹中可能不止有文件,还会有子文件夹,可以增加一个filecheck,仅让listdir返回文件
    def onlyfile(path):
    	for file in os.listdir(path):
    		if os.path.isfile(os.path.join(path,file)):
    			yield file
    
    添加在程序中进行如下替换:
    #原程序
    for files in os.listdir(path_files):	
    #替换为
    for files in onlyfile(path_files):	
    
    2)有时候可能需要对读取到的时间戳进行操作,需要加减一(几)天日期,可通过以下方式实现:
    def addoneday(date):
    	ori_date = datetime.datetime.strptime(date,'%Y%m%d')
    	altered_date += datetime.timedelta(days=1)
    	tar_date = datetime.datetime.strftime(altered_date,'%Y%m%d')
    	return tar_date
    
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值