功能说明:获取对应目录下所有文件,按创建时间,以年月(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
最终会在同目录下生成build,dist两个目录,其中,build 目录是 pyinstaller 存储临时文件的目录,可以安全删除。最终的打包程序在 dist 内部的 xxx目录中。
坑点
使用pyinstaller时,命令行报错,提示[failed to create process.]
原因是使用 PyInstaller 库需要注意以下问题:
- 文件路径中不能出现空格和英文句号(.);
- 源文件必须是 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)文件
网友评论