Python让图片名更有序

Python让图片名更有序

快速重命名(右键法) 去除空格和括号 加前缀 提取或删除指定的图片

1.删除特殊字符

import os

path = "D:/"
#删除特殊字符
for root, dirs, files in os.walk(path):
    for name in files:
        print(name)
        NewFileName = name.replace(")", '')
        NewFileName = NewFileName.replace("(", '')
        NewFileName = NewFileName.replace(" ", '')

        NewFileName = os.path.join(root, NewFileName)
        print(NewFileName)
        os.rename(os.path.join(root, name), os.path.join(root, NewFileName))
print("yes")

2.增加前缀

import os

path = "C:/"
#增加前缀
for root, dirs, files in os.walk(path):
    for name in files:
        pr='0'
        os.rename(os.path.join(root, name), os.path.join(root, pr+name))
print("yes")

3.删除指定文件

import os

#定义一个返回所有图片绝对路径的函数
def all_path(dirname):
    result = []
    for maindir, subdir, file_name_list in os.walk(dirname):
        for filename in file_name_list:
            apath = os.path.join(maindir, filename)
            result.append(apath)
    return result

def main():
    path = 'D:/'
    list1 = all_path(path)

    remove_path = 'D:/'
    with open(remove_path) as f:
        list2 = list(map(lambda s:s.strip(), f.readlines()))

#得到所有图片的名字并添加到list3中
    list3 = []
    for i in range(len(list1)):
        line = os.path.split(list1[i])[-1].split('/')[0]
        fname = os.path.splitext(line)[0]
        list3.append(fname)
        #list3.append(line)#带扩展名就用这个,不带用上面的

#将需要删除的图片的路径添加到list4中
    list4 = []
    for j in range(len(list3)):
        for k in range(len(list2)):
            if list3[j] == list2[k]:
                out_path = list1[j]
                list4.append(out_path)


    for n in range(len(list4)):
        os.remove(list4[n])

if __name__ == '__main__':
    main()
    print("yes")

4.复制指定文件

import os
import shutil
#定义一个返回所有图片绝对路径的函数
def all_path(dirname):
    result = []
    for maindir, subdir, file_name_list in os.walk(dirname):
        for filename in file_name_list:
            apath = os.path.join(maindir, filename)
            result.append(apath)
    return result

def main():
    #原始图片位置
    path = 'D:/'
    list1 = all_path(path)
    #复制图片路径,当前文件下新建一个目录
    ISexists=os.path.exists('.\image')
    if not ISexists:
        os.makedirs('.\image')
    new_path='.\image'
    #存放复制或者移除文件名字的txt
    remove_path = 'D:/'
    with open(remove_path) as f:
        list2 = list(map(lambda s:s.strip(), f.readlines()))

#得到所有图片的名字并添加到list3中
    list3 = []
    for i in range(len(list1)):
        line = os.path.split(list1[i])[-1].split('/')[0]
        #fname = os.path.splitext(line)[0]
        #list3.append(fname)
        list3.append(line)#带扩展名就用这个,不带用上面的

#将需要删除的图片的路径添加到list4中
    list4 = []
    for j in range(len(list3)):
        for k in range(len(list2)):
            if list3[j] == list2[k]:
                out_path = list1[j]
                list4.append(out_path)

    #移除指定路径的图片
    '''for n in range(len(list4)):
        os.remove(list4[n])'''

    #把特定名字(带扩展名)的复制到新路径
    for root,dirs,files in os.walk(path):
        for file in files:
            for n in range(len(list2)):
                if list2[n] == file:
                    print(file)
                    shutil.copy(os.path.join(root,file),new_path)

if __name__ == '__main__':
    main()
    print("yes")
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Robot_cmake

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值