python按照文件创建日期整理文件至文件夹
# -*- coding: utf-8 -*-
# @Time : 2019-02-15 13:31
# @Author : cxa
# @File : sortbydate.py
# @Software: PyCharm
import glob
import pathlib
import os
import datetime
import traceback
from concurrent import futures
import time
from functools import partial
'''
根据文件创建文件建立文件夹
'''
def to_str_path(path):
if path:
new_path = os.fspath(path)
return new_path
def movefile(image_path, dir_path):
try:
file_time = os.path.getctime(image_path)
stamp_to_datetime = datetime.datetime.fromtimestamp(file_time)
file_date = datetime.datetime.strftime(stamp_to_datetime, "%Y%m%d")
date_dir = (dir_path.joinpath(file_date))
jpg_dir_path, jpg_name = os.path.split(image_path)
if not os.path.exists(date_dir):
os.makedirs(to_str_path(date_dir))
print(f"创建文件夹:{file_date},当前路径是{date_dir}")
new_file_path = to_str_path(os.path.join(date_dir, jpg_name))
print(f"开始移动文件{jpg_name},完整路径 {new_file_path}")
os.rename(image_path, new_file_path) # 移动文件或重命名,这里是移动文件
print(f"指定文件已经移动到当前目录的{date_dir}目录")
except:
print(traceback.format_exc())
def start(filename: str = None, filetype: str = "jpg"):
'''
:param filename: 指定文件夹名,默认当前py文件所在的文件夹
:param date_str: 删除日期格式yyyymmdd
:param filetype: 需要删除的文件类型默认jpg.
:return: None
'''
filename = filename or __file__
dir_path = pathlib.Path(filename).resolve().parent
image_path_list = glob.glob(to_str_path(dir_path.joinpath(f"*.{filetype}")))
movef = partial(movefile, dir_path=dir_path)
with futures.ThreadPoolExecutor(max_workers=10) as pool:
pool.map(movef, image_path_list)
if __name__ == '__main__':
start_t = time.time()
start()
end = time.time()
print(end - start_t)
python按照文件创建日期整理文件至文件夹的更多相关文章
- Python定期删除文件、整理文件夹
1.根据传入的参数,文件所在目录,匹配文件的正则表达式,过期天数进行删除,这些可写在配置文件del_file.conf. del_file3.py #!/usr/bin/env python # en ...
- 利用Python将文件进行分类整理
利用Python将文件进行分类整理 功能 根据一个文件夹中的文件类型建立相应的文件夹,将同一种类型的文件放在一个文件夹中. 实现思路 主要用到 os 和 shutil 两个库,os 用来获取文件夹中的 ...
- python实现查看目录下重复的文件
该python 脚本有以下三个功能: 1. 实现查看目录下重复的文件,输出文件按修改时间升序排列 2. 将按修改时间排列比较旧的.可删除的文件列出来 3. 按目录对重复文件进行统计,比如,目录/tmp ...
- [转载]Python 元组、列表、字典、文件
python的元组.列表.字典数据类型是很python(there python is a adjective)的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益 ...
- python使用简单http协议来传送文件
python使用简单http协议来传送文件!在ubuntu环境下,局域网内可以使用nc来传送文件,也可以使用基于Http协议的方式来下载文件我们可以使用python -m SimpleHTTPServ ...
- python引入导入自定义模块和外部文件
参考:http://blog.csdn.net/devil_2009/article/details/15816237 项目中想使用以前的代码,或者什么样的需求致使你需要导入外部的包 如果是web 下 ...
- linux文件权限整理
网上对linux文件权限的已经很多,不过还是要自己整理一下,不然每次都要查资料. linux下所有东西都是文件,包括设备,所以这里的文件也包括文件夹. 先是查看文件权限:ls -lh xzc@xzc- ...
- Python核心编程读笔 8: 文件和输入输出
第九章 文件和输入输出 一.文件内建函数.方法.属性 1 文件内建函数 file_object = open(file_name, access_mode='r', buffering=-1) 工厂函 ...
- Python 函数基础、有序集合、文件操作(三)
一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...
随机推荐
- powershell 定时删除脚本
powershell 定时删除脚本 $today=Get-Date #"今天是:$today" #昨天 #"昨天是:$($today.AddDays(-1))" ...
- SecureCRT for ubuntu 菜单消失
两种解决方案. 1.先说网上查到的复杂的: 编辑CRT安装目录下的Global.ini 找到 D:"Show Menu Bar"=00000000 改成 D:"Show ...
- python 线程(创建2种方式,锁,死锁,递归锁,GIL锁,守护进程)
###############总结############ 线程创建的2种方式(重点) 进程:资源分配单位 线程:cpu执行单位(实体) 线程的创建和销毁的开销特别小 线程之间资源共享,是同一个 ...
- Kafka技术内幕 读书笔记之(五) 协调者——消费者加入消费组
消费者客户端轮询的3个步骤:发送拉取请求,客户端轮询,获取拉取结果 . 消费者在发送拉取请求之前,必须首先满足下面的两个条件.- 确保消费者已经连接协调者, 即找到服务端中管理这个消费者的协调者节点 ...
- NPOI使用教程附Helper
1 NPOI简介 1.1 NPOI是什么 NPOI是POI的.NET版本,POI是一套用Java写成的库,我们在开发中经常用到导入导出表格.文档的情况,NPOI能够帮助我们在没有安装微软Office的 ...
- jira7通过全局js给编辑区自定义快捷键【原】
jira7编辑区自定义快捷键 本文主要描述了jira7如何通过添加全局js引用,给文本编辑区自定义快捷键用以快速填充模板内容. jira 3/4/5可参考官方api https://developer ...
- html(常用标签,标签分类),页面模板, CSS(css的三种引入方式),三种引入方式优先级
HTML 标记语言为非编程语言负责完成页面的结构 组成: 标签:被<>包裹的由字母开头,可以结合合法字符( -|数字 ),能被浏览器解析的特殊符号,标签有头有尾 指令:被<>包 ...
- Python高性能编程
一.进程池和线程池 1.串行 import time import requests url_lists = [ 'http://www.baidu.com', 'http://fanyi.baidu ...
- 编辑距离算法以及它的C#实现
原文:https://www.cnblogs.com/shihuajie/p/5772173.html 注意,原文中有以下表述不当的地方 “扫描两字符串(n*m级的),如果:str1 == str2[ ...
- 对空间数据(Shape)重新排序
打开ArcToolBox,数据管理工具->常规(General)->排序