【python】22_IO编程之批量修改文件后缀名

更新时间:2023-06-16 06:28:21 阅读: 评论:0

【python】22_IO编程之批量修改⽂件后缀名
【摘要】上篇博⽂就os模块中关于⽂件与⽬录操作的函数都梳理了⼀遍,本⽚博⽂将要实现⽂件后缀名的批量修改,以此进⼀步掌握os模块的⽂件操作。
问题描述:
1. 在当前⽬录新建⽬录img, ⾥⾯包含100个⽂件, 100个⽂件名各不相同(X4G5.png)
2. 将当前img⽬录所有以.png结尾的后缀名改为.jpg.
先分析⼀下题意,拆解⼀下步骤。
1.⽂件名的格式有点类似于验证码,因此我们先完成⽂件名的⽣成这个函数(相当于⾃动⽣成验证码)
2.再在当前⽬录中新建⼀个⽬录img,在这个⽬录下批量创建⽂件,⽂件名第⼀步已经⽣成好了,直接调⽤函数即可。culture可数吗
3.最后⼀步再批量修改后缀名
1. 验证码的⽣成(这⾥是⽂件名) 验证码⼀般是由4位组成,有⼤⼩写字母和数字
import string
import random
def generate_code(length=4):
"""
默认⽣成4位验证码: 由两个⼤写字母,⼀个⼩写字母和⼀个数字组成;
"""
# 从某个序列⾥⾯随机获取⼏个元素;
code_li = random.sample(string.ascii_upperca, 2) + random.sample(string.ascii_lowerca, 1) \
+ random.sample(string.digits, 1)
# 将⽣成的验证码顺序打乱;
random.shuffle(code_li)
# 将列表拼接成字符串
return  "".join(code_li)
这⾥我们调⽤⼀下,看执⾏效果:
code = generate_code()
print(code)
⽣成的验证码符合要求。
2. 批量⽣成100个⽂件
50寸电视推荐
import os
#定义了创建⽂件的函数
def create_files():
#题⽬要求我们在当前⽬录下,创建img⽬录
dirname = 'img'
囤积居奇的意思
#判断这个⽬录名是否存在,不存在的话才执⾏以下操作
电饭锅怎样蒸米饭
if not ists(dirname):
os.mkdir(dirname)
print("⽬录%s创建成功" %(dirname))
# 循环100次,创建100个⽂件
for count in range(100):
#调⽤我们⾃定义的⽂件名随机⽣成函数generate_code()来随机⽣成⽂件名
filename = generate_code() + '.png'
#要将⽣成的⽂件放在img⽬录下
full_filename = os.path.join(dirname, filename )
os.mknod(full_filename)
print("%s创建成功" %(full_filename))
调⽤⼀下,我们看看效果
create_files()
⽬录img以及⽬录下的100个以.png为后缀的⽂件已经⽣成。
3.批量修改后缀名
import os
def modify_suffix(dirname, old_suffix, new_suffix):
"""
'hello.png'  ----'hello.jpg'
img .png .jpg
:param dirname: 操作的⽬录
:param old_suffix: 原先的后缀名
:param new_suffix: 新的后缀名
:return:
"""
# 0-1).判断源后缀名是否以.开头,如果不是,则添加;标枪加油稿
if not old_suffix.startswith('.'):
old_suffix = '.' + old_suffix
猴枣# 0-2). 判断新的后缀名是否以.开头,如果不是,则添加;
if not new_suffix.startswith('.'):
new_suffix = '.' + new_suffix完善近义词
# 1. 判断查找的⽬录是否存在,如果不存在,显⽰报错
if not ists(dirname):
print("Error: ⽬录%s不存在" % (dirname))
# 2. 如果⽂件存在,做如下操作:
明代家具el:
# 2-1). 列出指定⽬录的所有⽂件名,其返回值是个列表,列表中的每个字符串为⽂件名;
filenames = os.listdir(dirname)
# 2-2). 依次遍历⽬录的每⼀个⽂件名;
for filename in filenames:
# 2-3). 如果⽂件是以old_suffix结尾,则对改⽂件重命名;
dswith(old_suffix):
# 修改后缀名
# 2-3-1). 将后缀名和⽂件名本⾝分隔开; hello.png === hello .png, 并⽣成新的⽂件名                #将拿到的⽂件名,分隔其后缀名和⽂件名。拿到⽂件名与新的后缀名拼接
new_filename = os.path.splitext(filename)[0] + new_suffix
full_old_filename = os.path.join(dirname, filename)
full_new_filename = os.path.join(dirname, new_filename)
# 2-3-2). 重命名
print("重命名【%s】为【%s】成功!" % (filename, new_filename))
调⽤⼀下:
modify_suffix('img', 'png', 'jpg')
搞定~~~~

本文发布于:2023-06-16 06:28:21,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1040709.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:词缀论文
标签:后缀名   是否   验证码   存在   批量   修改   列表   获取
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图