今天要给大家介绍的是阿灏给朋友写的一个小应用程序,阿灏的这位朋友是做自媒体的,所以不管电脑里还是手机里视频真的是多如牛毛,可日积月累问题来了,那么多视频,一个个手动去整理真心浪费时间,于是找到我寻求技术帮助,了解了下,需求大概分为几个小点:
- 需要按照视频文件的时间日期进行排序
- 将排序好的文件按照月份去分类整理(也就是2021/1月份拍的视频建立一个1月份的文件夹,2021/2月份的视频建立一个2月份的文件夹…)
需求足够明确,其实程序也相当简单,我就打算用API富饶的Python语言来写这个程序,大概的代码如下:
from hachoir.parser import createParserfrom hachoir.metadata import extractMetadataimport osfrom shutil import copyfileimport sys
def travel_dir(filepath,dest_dir): for root, dirs, files in os.walk(filepath): for file in files: origin_file_path = os.path.join(root,file) dest_file_path = '' if file.endswith('MP4') or file.endswith('MOV') or file.endswith('JPG') or file.endswith('jpg') or file.endswith('mp4') or file.endswith('mov'): datetime = get_creation_date(os.path.join(root,file)) new_dir = os.path.join(dest_dir,datetime.strftime("%Y-%m")) file_suffix = os.path.splitext(file)[1] dest_file_path = os.path.join(new_dir,datetime.strftime("%Y%m%d")+'_'+datetime.strftime("%H%M%S") + file_suffix) if os.path.exists(new_dir) == False: os.mkdir(new_dir) copyfile(origin_file_path,dest_file_path)
def get_creation_date(filename): parser = createParser(filename) metadata = extractMetadata(parser) return metadata.get('creation_date')
if __name__ == '__main__': if (len(sys.argv) < 3): print("please input params:\n") print("main.exe src dest") else: src_dir = sys.argv[1] dest_dir = sys.argv[2] if os.path.exists(dest_dir) == False : os.mkdir(dest_dir) travel_dir(src_dir,dest_dir) print("Done. Thanks for using.")
其实代码中最核心的还是去对视频的解析,取出视频创建日期,有了这个时间后,剩下的就是对视频进行分类存放了。
当我很满足地把程序交给我朋友时,咱两面临一个很尴尬的问题,怎么跑python程序呢?他没有安装python环境?难道还要帮他装一个环境? 这个体验可不好。
于是脑筋一蹦哒,干脆一不做二不休,直接转成exe,这样人家就可以一键运行了,接下来就用到了pyinstaller这个工具,专门为python程序转化为exe服务的一个转换工具,直接可以把python程序转换成一个exe程序,这样程序就可以直接在win上进行运行了,就算不会python也不要紧,就算没有安装python环境也不是事,一键运行即可。
最后再分享两段我实际操作过程的视频案例,希望对有需要的小伙伴有帮助:
用pyinstaller来转换python 变成 EXE 可执行文件:
运行EXE:
好了,现在知道人人都可以运行的python程序就长这个样子了吧。
声明:来自ven coding,仅代表创作者观点。链接:https://eyangzhen.com/7801.html