Python_文件整理分类(按时间分类)

2018-11-26  本文已影响0人  z小轩

功能说明:获取对应目录下所有文件,按创建时间,以年月(yyyymm)为区分,创建文件夹,

然后复制或移动对应年月创建的文件至对应文件夹,并以年月+序号(yyyymm_i)的方式重新命名文件

未整理的目录文件

整理完成后的目录


整理完成后的目录

UI界面使用Python 自带的tkinter模块(python3.x 模块名为tkingter,之前版本为Tkinter)

界面

完成后的工具界面

界面的编辑是使用tkingter的可视化UI编辑器完成的。

https://www.cnblogs.com/darkspr/p/6077573.html
可视化编辑器,使用Windows VB进行界面ui编辑,然后使用一个模块插件,将界面编辑导出为一份tkinter 代码

核心代码:

#
# 处理文件及目录
# 
# @dicPath 目录路径
# # copyOrMove 复制操作还是移动操作 False为复制操作,True为移动操作
def handle_file(dicPath, copyOrMove=False):
    fileList = os.listdir(dicPath)
    dateList = []
    fileDic = {}
    print(str(fileList))
    for x in fileList:
        filepath = dicPath + "/" + x
        # 判断是文件
        if Path.isfile(filepath): 
            dataStr = get_format_time(Path.getctime(filepath))
            dicpath = Path.join(dicPath, dataStr) # dicPath + "/" + dataStr 

            # 判断是否已记录
            if not is_element_exist(dateList, dataStr): 
                dateList.append(dataStr)
                # 根据日期创建目录
                dicpath = dicPath + "/" + dataStr
                if not Path.exists(dicpath):
                    os.mkdir(dicpath)

            fileDic[filepath] = dicpath
            # 操作文件
            if copyOrMove:
                shutil.move(filepath, Path.join(dicpath, x))
            else:
                shutil.copyfile(filepath, Path.join(dicpath, x))

#
#   通过时间戳获取时间日期,取年月日
#
def get_format_time(timeStamp):
    timeStruct = time.localtime(int(timeStamp))
    return time.strftime("%Y-%m", timeStruct)

生成exe

使用

pip install pyinstaller

安装puinstaller,然后cd到需要打包的py文件目录,使用命令

pyinstaller -F xxx.py

最终会在同目录下生成builddist两个目录,其中,build 目录是 pyinstaller 存储临时文件的目录,可以安全删除。最终的打包程序在 dist 内部的 xxx目录中。

坑点

使用pyinstaller时,命令行报错,提示[failed to create process.]
原因是使用 PyInstaller 库需要注意以下问题:

  1. 文件路径中不能出现空格和英文句号(.);
  2. 源文件必须是 UTF-8 编码,暂不支持其他编码类型
    而我本地的python是安装在C:\Program Files (x86)\Python35-32这个路径中包含了空格,所以导致问题。

解决办法:

python "C:\Program Files (x86)\Python35-32\Scripts\pyinstaller-script.py" -F xxx.py

然后就可以了。

PyInstaller 有一些常用参数,如下所示:
-h, --help 查看帮助
-v, --version 查看 PyInstaller 版本
--clean 清理打包过程中的临时文件
-D, --onedir 默认值,生成 dist 目录
-F, --onefile 在 dist 文件夹中只生成独立的打包文件第
-p DIR, --paths DIR 添加 Python 文件使用的第三方库路径
-i <.ico or .exe,ID or .icns>,--icon <.ico or .exe,ID or .icns >指定打包程序使用的图标(icon)文件

上一篇 下一篇

猜你喜欢

热点阅读