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 ... 
随机推荐
- 1053. Path of Equal Weight (30)
			Given a non-empty tree with root R, and with weight Wi assigned to each tree node Ti. The weight of ... 
- Elastic Stack之Redis集群使用
			Elastic Stack之Redis集群使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客数据流走向:FileBeat ===>Redis ===>lo ... 
- Centos 6\7下yum安装R
			在linux下安装软件不如windows方便,在windows下我们一般针对可安装的文件(如R.exe)直接双击运行就可以了.而在linux下我们首先要学会使用安装软件的专门工具如centos下的rp ... 
- python遇到的知识点
			python遇到的知识点,记录一下.方便学习. 文件相关操作 查了资料,关于open()的mode参数: 'r':读 'w':写 'a':追加 'r+' == r+w(可读可写,文件若不存在就报错(I ... 
- Kafka权威指南   读书笔记之(一)初识Kafka
			发布与订阅消息系统 数据(消息)的发送者(发布者)不会直接把消息发送给接收者,这是发布与订阅消息系统的一个特点.发布者以某种方式对消息进行分类,接收者(订阅者)订阅它们, 以便接收特定类型的消息.发布 ... 
- Ubuntu 云服务器上部署自己的 Rails 应用
			自学rails一段时间了,之前只用heroku部署了网站,想尝试把网站以一个更“正经”的方式呈现出来,就买了一个阿里云服务器.参考了网上部分rails部署教程,过程中也遇到了一些问题,所以在完成之后总 ... 
- golang etcdclientv3使用说明
			clientv3.New() 创建连接 config = ec.Config{ Endpoints: []string{"10.0.0.5:2379"}, //连接的etcd集群地 ... 
- HDU 1022(火车过站 栈)
			题意是给定火车进站的序列和出站的序列,问能否完成转换,若能输出过程. 和另一道以火车进站为背景的栈应用题类似,但增加了对于过程的输出,只需要多记录一下进出站顺序即可. #include <bit ... 
- 051、在overlay中运行容器(2019-03-18 周一)
			参考https://www.cnblogs.com/CloudMan6/p/7294501.html 我们前面创建了overlay网络 ov_net1 ,今天我们运行一个busybox容器并连接到 ... 
- Log4j 1.x JDBCAppender记录日志失效问题详解
			官网:http://logging.apache.org/log4j/1.2/manual.html 事件:最近在项目中使用log4j 1.x JDBCAppender记录管理员操作日志到数据库,在测 ... 
