python3批量改名

概要

自打有了网课的经验,老师们各有个的收作业方式.有的用智学网.但有的老师就比较厉害,他们让学生拍照传文件ヽ(ー_ー)ノ
甚至要改文件名,打包成zip (`皿´)

构思

既然是拍照上传,拍照肯定是手机的事 我不会安卓,那我们看看在电脑上我们可以做什么

  1. 改名字----用python实现应该不难
  2. 打包zip---应该也不难
  3. 发布------QQ上发给特定的人

开干

问题 方法
改名字 python os
打包zip python zipfile
图形界面 tkinter
发布 待定

先写一个建个文件夹

写代码

(开抄)创建一个main.py

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#作者:LRD
#博客教程:https://www.cnblogs.com/Lird2002/p/14314711.html
#仅供学习参考

#导入库
import os, sys
import time 

#程序入口
if __name__ == "__main__":

在文件夹里随便搞一张图片来测试.

因为我们只是个小项目,不用考虑项目结构,所以直接放一起就好
但在大型项目里,瞎搞的项目结构最后就会一团糟(屎山)
现在我们用os里的 os.rename() 来改文件名,time里的time.time()函数获取时间
编写一个函数trans_name()

import os, sys
import time 

def trans_name(user_name):
    os.rename("DRL.png",user_name+"_"+str(time.time())+".png")

if __name__ == "__main__":
    trans_name("LRD")

运行
DRL.png变成了LRD_1611314445.0712326.png
这后面一坨什么啊
这种时间显然老师是看不懂的

科普一下
后面这串数值是自从1970年1月1日午夜(历元)经过了多长时间

所以我们要对这个时间格式化(让人能看懂)

time.localtime(time.time())

能将看不懂的时间转换成一个元组

序号 属性
0 tm_year
1 tm_mon 1 到 12
2 tm_mday 1 到 31
3 tm_hour 0 到 23
4 tm_min 0 到 59
5 tm_sec 0 到 61 (60或61 是闰秒
6 tm_wday 0到6 (0是周一)
7 tm_yday 1 到 366(儒略历)
8 tm_isdst -1, 0, 1, -1是决定是否为夏令时的旗帜

而我们只需要月份和日期即可

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#作者:LRD
#博客教程:https://www.cnblogs.com/Lird2002/p/14314711.html
#仅供学习参考

#导入库
import os, sys
import time 

def trans_name(user_name):
    time_now = time.localtime(time.time())
    os.rename("DRL.png",user_name+"_"+str(time_now[1])+"_"+str(time_now[2])+".png")

#程序入口
if __name__ == "__main__":
    trans_name("LRD")

测试可行

打包成zip

根据网上的样例

import zipfile
file_name="a.txt"
f = zipfile.ZipFile('test.zip','w',zipfile.ZIP_STORED)
f.write(file_name)
f.close()

我们将代码重构一遍

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#作者:LRD
#博客教程:https://www.cnblogs.com/Lird2002/p/14314711.html
#仅供学习参考

#导入库
import os, sys
import time 
import zipfile

def create_flie_name(user_name):
    time_now = time.localtime(time.time())
    return user_name+"_"+str(time_now[1])+"_"+str(time_now[2])

def trans_name(file_name):
    new_file_name = file_name+".png"
    os.rename("DRL.png",new_file_name)

def create_zip(file_name,file_list):
    f = zipfile.ZipFile(file_name+".zip",'w',zipfile.ZIP_STORED)
    for i in file_list:
        f.write(i)
    f.close()
#程序入口
if __name__ == "__main__":
    file_list = []
    user_name = "LRD"
    zipfile_name = create_flie_name(user_name)
    trans_name(zipfile_name)
    create_zip(zipfile_name,file_list)


成功
主要功能实现了
下一篇文章我们实现多文件打包和tkinter图形界面的编写
To be continue

参考

https://www.runoob.com/python/python-gui-tkinter.html
https://www.cnblogs.com/sea-stream/p/10008029.html

posted @ 2021-01-22 21:01  LRD  阅读(97)  评论(0)    收藏  举报