pythontool_将两个文件夹中的文件命名对照然后放在同一个文件夹下

本文介绍如何使用Python高效地将两个文件夹中的文件按命名对应合并到同一文件夹下。具体场景是,一个文件夹包含城市名的wld文件,另一个文件夹包含城市+日期的png文件,目标是将所有wld文件重命名并与png文件对应,最终放入新文件夹。通过提取文件名中的关键信息并进行对照,实现文件的复制和重命名操作。
摘要由CSDN通过智能技术生成

pythontool_将两个文件夹中的文件命名对照然后放在同一个文件夹下

有些不同格式的文件被放在了两个文件夹下,有些是带有特定日期作为标志的,有些是只有主要的内容,如:shanghai.wld与shanghai202008241111.png,被分别存放在了wld、png的文件夹下,需要根据同一城市的命名shanghai都放在shanghai这个文件夹下;或者根据wld文件夹下所有的wld文件将所有对应的城市都放在同一文件夹下,甚至包含了wld文件与png文件的复制与重命名。手工劳动效率太低,Python可大量快速执行。

我的任务:有两个文件夹,一个文件夹下存放了42(图片左下角)个仅有城市命名的wld文件;另一个存放了40(图片左下角)个城市+时间命名的png文件。需要将wld文件和png文件的城市名字对应起来,然后将wld文件命名改成与png一致的城市+时间命名之后再将其放到新的文件夹last下,所以last下文件数量应该为png的两倍也就是80张(图片左下角)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本次所用的包不多

import os
import shutil
from itertools import groupby

那首先需要获得不同文件夹下的所有文件的名字

def showname(name_a):
    name_b=os.path.splitext(name_a)[0]
    return name_b

有的名字中除了主要内容还包含了时间标识,需要将主要的内容提取出来,下列代码是将字母与数字分隔开的代码:

def cityname_split_pic(filename_forcity):
    cityname_out = [''.join(list(g)) for k, g in groupby(filename_forcity, key=lambda x: x.isdigit())]
    return cityname_out[0]

这样一来两种文件的主要对应信息的内容都已经提取了,就可以用if语句对照了。
之后就是复制和重命名了,对于本次任务来说,png是只需要copy的;wld文件是需要copy后改名字的,记住是先copy再改名字(先改名字再copy也可以,但是下次执行的时候由于wld带了时间数字了,因此对应的提取函数得变一下,我这边wld

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值