此文章参考了以下三位老师的博文:
知乎博主@又不是非我不可
https://zhuanlan.zhihu.com/p/524801951
CSDN博主@Mrji1995
https://blog.csdn.net/weixin_49148532/article/details/124292394
CSDN博主@道纪书生
https://blog.csdn.net/qq_40682833/article/details/123953980
两位的文章对我帮助非常大,特此表达感谢!
“自2018年初秋进入光电工程学院学习以来,一转眼便已经过去了四年时间。这期间过得并不轻松,经历了许多苦楚与坎坷。此刻回头看,发现自己将四年的时光献给了一项事业,我诚挚且强烈地认为,它是无比正确而充满光明的。值此提前毕业、奔赴远方,投身建设祖国之际,向四年里曾帮助、支持过我、予我以体贴与暖意的老师和同学们致以诚挚的敬意与由衷的感谢。”
临别之际,我和很多很多老师、同学拍了合照,以至于,当我想发朋友圈来纪念我们对友谊时,竟一时词穷,想不出该说什么了。微信发朋友圈最多发9张,那么我便想,不如做个照片墙?一下全发了就好了。
事不宜迟,撸起袖子,开始吧!
这一步骤需要用到glob和os库,Os库是Python标准库,不需要另外安装。因此安装好glob库即可。
cmd下输入以下指令即可。
pip install glob
首先导入上述模块
import glob
import os
而后,开始构思实现功能。具体思路是:
1.读取某文件夹内所有文件;
2.将其中图片文件重命名;
首先用一个list,列出文件夹内所有的图片文件
file_list = glob.glob(f"./{
filepath}/*.JPG")
# 此处*.JPG,指读取该文件夹内所有JPG文件
# 如果该文件夹内所有文件都是图片文件,但不是所有都是JPG,则可以直接用*.*
其次还要知道总共有多少张照片
list_len = [a for a in range(0, len(file_list))]# 获取图片总数量
最后,给所有文件重命名
i = 0
print('REPO: Renaming...')
for num in list_len:
os.rename(file_list[num], f'./{
filepath}/{
i}.jpg')
i += 1
当然,考虑到模块化设及,在具体操作中,我将这个功能封装成一个函数,并且返回了一个图片总数(后面要用)
def Rename(filepath):
file_list = glob.glob(f"./{
filepath}/*.*")
list_len = [a for a in range(0, len(file_list))]
i = 0
for num in list_len:
os.rename(file_list[num], f'./{
filepath}/{
i}.jpg')
i += 1
return len(file_list)
不过呢,在实际应用中,如果每次都在程序里把地址写出来就非常麻烦,每次都要改,因此可以用一个简单的GUI来解决这个问题。
这样的话就需要用到PySimpleGUI模块,首先还是要先安装好:
pip install PySimpleGUI
引用模块
import PySimpleGUI
用法非常简单
dir_path = popup_get_folder('Select Folder')
if not dir_path:
popup('cancel', 'no folder selected')
raise SystemExit('cancelling: no folder selected')
else:
popup