前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python批量创建和修改文件名案例

Python批量创建和修改文件名案例

作者头像
北山啦
发布2022-11-27 13:50:57
1.1K0
发布2022-11-27 13:50:57
举报
文章被收录于专栏:北山啦的博客

Python批量创建和修改文件名

文章目录

需求:

学习新思想,争做新青年。 利用一张大学习的截图,生成全班级的截图,并命名为学号+姓名的形式

导入模块

代码语言:javascript
复制
import os
import glob
from shutil import copyfile
import pandas as pd

切换路径

path路径为你存放青年大学习截图的路径,至少要有一张图片

代码语言:javascript
复制
path = input(r"请输入文件夹地址:")
os.chdir(path)
代码语言:javascript
复制
请输入文件夹地址:C:\Users\Administrator\Desktop\files

批量复制文件

  1. path路径为你存放青年大学习截图的路径,至少要有一张图片
  2. num为path路径下照片的数量
  3. total_num为班级人数
代码语言:javascript
复制
os.chdir(path)
total_num = int(input(r'请输入班级人数:'))
path_file_number = glob.glob("*.jpg")  #获取当前文件夹下个数
num = len(path_file_number)
source_file = [i for i in os.listdir(path)][0]
[
    copyfile(source_file, f"{i}" + ".jpg") for i in range(0, total_num - num)
    if num <= total_num
]
print("创建成功")
代码语言:javascript
复制
创建成功

获取学号姓名的对应关系

*.xlsx为你的班级的姓名与学号的excel表格,记得修改read_excel(’ ')为你的路径.

代码语言:javascript
复制
df = pd.read_excel(
    r"青年大学习\18541花名册.xlsx")
stu_ids = df.iloc[:, 0]
stu_names = df.iloc[:, 1]
l = []
for index in range(len(stu_names)):
    stu_id = str(stu_ids[index])
    stu_name = stu_names[index]
    l.append(stu_id + stu_name)

批量重命名文件

代码语言:javascript
复制
files = os.listdir()
for i in range(num):
    old_name = files[i]
    new_name = [k for k in l]
    if(os.path.exists(new_name[i]+".jpg")):
        continue
    else:
        os.rename(old_name,new_name[i]+".jpg")
    print("修改成功")

代码截图

批量创建文件夹

在这里将要用到python中的os模块。

  1. os.path.exists(path) : 判断文件是否存在
  2. os.makedirs(path+dirname) : 创建文件夹 路径 + 名称
代码语言:javascript
复制
import os			#导入模块
path = './test/'	#设置创建后文件夹存放的位置
for i in range(10):	#这里创建10个文件夹
    isExists = os.path.exists(path+str(i))
    if not isExists:						#判断如果文件不存在,则创建
        os.makedirs(path+str(i))	
        print(f"{i} 目录创建成功")
    else:
        print(f"{i} 目录已经存在")	
        continue			#如果文件不存在,则继续上述操作,直到循环结束

匹配特定格式的文件

代码语言:javascript
复制
folder = r"D:\files"
files = os.listdir(folder)
print(files)

def file_filter(f):
    if f[-4:] in ['.jpg', '.png', '.bmp']:
        return True
    else:
        return False

files = list(filter(file_filter, files))
print(files)

批量修改文件名称

在这里将要用到python中的os模块。

  1. os.listdir(dir) : 获取指定目录下的文件名称
  2. os.rename(oldfile,newfile) : 修改文件名字
  3. re.findall() :这里需要用到正则表达式匹配需要的关键字
  4. os.path.isdir(path) : 判断该文件是否文件夹 我是北山啦,欢迎关注我的CSDN博客:https://beishan.blog.csdn.net/
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python批量创建和修改文件名
    • 文章目录
      • 导入模块
        • 切换路径
          • 批量复制文件
            • 获取学号姓名的对应关系
              • 批量重命名文件
                • 代码截图
                • 批量创建文件夹
                • 匹配特定格式的文件
                • 批量修改文件名称
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档