python3批量改名
概要
自打有了网课的经验,老师们各有个的收作业方式.有的用智学网.但有的老师就比较厉害,他们让学生拍照传文件ヽ(ー_ー)ノ
甚至要改文件名,打包成zip (`皿´)
构思
既然是拍照上传,拍照肯定是手机的事 我不会安卓,那我们看看在电脑上我们可以做什么
- 改名字----用python实现应该不难
- 打包zip---应该也不难
- 发布------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

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