python简单的修改文件名_修改文件名和文件夹名(python)

最近看在《HTML5与CSS3权威指南》,在华章网上将其配套源代码下了下来,悲剧的是文件夹,文件名均为乱码。估计作者是在windows下写的该代码,windows下的默认编码是gbk,而我的是ubuntu,默认编码是utf-8,因此中文全是乱码就不足为奇了。该图显示了改变之前的情况:

0_1305520613gyeG.gif

前面的是乱码部分,现在我想将前面的乱码部分去掉,比如将第一个文件夹重命名为"18-2"。这里用到了python的三个模块os、os.path以及re。os除了能够对进程及进程运行环境进行管理外,还负责大部分的文件系统操作,比如进入某文件目录,打开某文件等;os.path主要负责路径方面的,比如某文件的基路径,文件名等;而re则负责正则表达式。下面为代码:

import os

import os.path

import re

def modify( path ):

os.chdir( path )

for dir_or_file in os.listdir( path ):

if os.path.isdir( dir_or_file ):

modify( os.getcwd() + '/' + dir_or_file )

os.chdir( '..' )

dir_name = re.search( '[0-9]{1,2}-[0-9]{1,2}' , dir_or_file )

if dir_name is not None:

os.rename( dir_or_file , dir_name.group() )

else:

new_name = re.search( '[0-9]{1,2}-[0-9]{1,2}.html' , dir_or_file )

if new_name is not None:

os.rename( dir_or_file , new_name.group() )

if __name__ == '__main__':

modify( '/home/shiyanhui/Downloads/HTML5CSS3' )

对代码做一下说明,首先for循环遍历每一个文件(夹),如果是文件夹,则递归调用modify()函数;如果是文件则直接通过正则表达式匹配来修改文件的名称。当遍历完一个文件夹的所有内容时,进入到该文件夹的上一层目录,然后根据正则表达式来修改该文件夹的名称。最终效果是总文件中的所有文件及文件夹的名称均改变了。

终端执行:

python modify_file_name.py

最终效果为:

0_1305521379nm7d.gif

仅以此文记录一下。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值