当处理大量数据样本时,有时会遇到批量给文件打时间戳的需求,手动操作起来难以想象,这里给大家分享一个利用python批量为文件夹中文件打时间戳的方法:
获取文件创建(修改)日期并将此部分信息整合入文件名
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))
file_mtime = datetime.datetime.fromtimestamp(file_mtime)
file_mtime = datetime.datetime.strftime(file_mtime, '%Y%m%d')
fname=os.path.splitext(files)[0]
fname=fname+'-T'+file_mtime
fname= fname+os.path.splitext(files)[1]
file_src=os.path.join(path_files,files)
file_tar=os.path.join(path_target,fname)
os.rename(file_src,file_tar)
- 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
|