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