按照文件夹时间提取或归类相应数据
System:Ubuntu 22.04.1
Python Version:3.11.6
'''
按照文件夹名称的时间来获取需要的数据
适用于文件名中包含时间格式为%Y-%m-%d_%H的文件
目标文件夹命名方式为%Y%m%d%H_%Y%m%d%H ,eg./2019010100_2019010900
'''
import os
import pandas as pd
from datetime import datetime
import shutil
import re
#按照一定的时间间隔,创建一个时间段内的时间列表
def generate_dates_from_filename(filename):
start_time = datetime.strptime(filename.split('_')[0], '%Y%m%d%H').strftime('%Y-%m-%d')
end_time = datetime.strptime(filename.split('_')[1], '%Y%m%d%H').strftime('%Y-%m-%d')
return pd.date_range(start_time, end_time, freq='1H').strftime('%Y-%m-%d_%H')
#复制文件
def copy_files_for_date_range(origin_dir, target_dir, date_range,file_prefix):
files = os.listdir(origin_dir)
for file in files:
if file_prefix in file and re.search(r'(\d{4}-\d{2}-\d{2}_\d{2})', file).group(1) in date_range: #查找文件名中的时间,eg.2019-01-01_00
original_file = os.path.join(origin_dir, file)
new_file = os.path.join(target_dir, file)
shutil.copyfile(original_file, new_file)
print(f"File {file} copied to {target_dir}")
#将特定文件分别复制到 有多个包含时间的文件夹中
def process_files_in_directory(target_dir, origin_dir,file_prefix):
#路径末尾为时间,以‘_’分割起止时间
if '_' in os.path.basename(target_dir):
target_file=target_dir
file=os.path.basename(target_dir)
dates = generate_dates_from_filename(file)
copy_files_for_date_range(origin_dir, target_file, dates,file_prefix)
#路径为时间文件夹的上一层目录
else :
files = os.listdir(target_dir)
for file in files:
dates = generate_dates_from_filename(file)
target_file=os.path.join(target_dir,file)
copy_files_for_date_range(origin_dir, target_file, dates,file_prefix)
#复制分类后删除原文件夹中的文件
def delete_files(origin_dir):
files = [f for f in os.listdir(origin_dir) if f.startswith(file_prefix)]
for file in files:
file_path = os.path.join(origin_dir, file)
try:
os.remove(file_path)
print(f"File {file} deleted from {origin_dir}")
except Exception as e:
print(f"Error deleting {file}: {e}")
target_dir = '/2019010100_2019010900'#需要复制到的目标路径
origin_dir = '/2019/01'#所有文件路径
file_prefix=''#文件的前缀
process_files_in_directory(target_dir, origin_dir,file_prefix)
#delete_files(origin_dir)#删除原始目录下的相应文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!