Python批量修改文件名

工作中经常会遇到需要批量修改文件名的情况,比如:
有这样一个文件夹,里面是249个国家的国家,按照ISO 3166-1标准中的国家二位简称进行命名:
flags

现在面临这样的需求,需要将二位英文简称命名的文件换成国家代码命名的文件。
这里写图片描述

比如,第一个国家Andorra,简称AD,根据表格对应的国家码,需要将AD.png修改为20.png。
资源下载链接:http://download.csdn.net/download/moxigandashu/9943276

接下来,我们利用Python实现以上要求:

#引入需要用到的包os和pandas
import os 
import pandas as pd

flagpath='G:/touchpal/code/nation_flag/xhdpi' #文件夹所在的路径
countrypath='G:/touchpal/code/nation_flag/country_ code.csv' #国家简称与国家代码对应表格路径

filelist=os.listdir(flagpath) #获取所有文件名
country_code=pd.read_csv(countrypath) #读取表格

for files in filelist:
    olddir=os.path.join(flagpath,files) #修改前文件路径及文件名
    filename=os.path.splitext(files)[0] #得到文件名
    filetype=os.path.splitext(files)[1] #得到文件类型
    newfilename=filename #先用旧的文件名覆盖新文件名,防止没有新文件名
    m=shape(country_code)[0] #获取国家简称与国家代码对应表格(DataFrame)行数
    for i in range(m):
        if country_code['Alpha_code'][i]==filename: #匹配与转化
            newfilename=country_code['Numeric code'][i] #匹配成功复制新文件名
    newname=str(newfilename)+filetype #连接文件名与文件类型
    newdir=os.path.join(flagpath,newname) #新的文件路径及文件名
    os.rename(olddir,newdir) #重命名,覆盖原先的文件名

这个时候再看刚刚各国国家国旗所在的文件夹:
newfile

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值