python批量修改文件名中的一部分_Python-批量修改文件名

今天,女朋友问我批量修改文件名。要将一个文件夹下的很多文件的文件名中一些类似的字段去掉。

我就写了下,代码贴在下面。

完整代码:

import os,re

class ChangeFilename:

def __init__(self,path):

self.path=path

os.chdir(self.path)

#添加,这里写的是头部添加,也可稍加修改写成尾部添加

def add(self):

content_to_add = input("请输入需要添加的内容,输入完成后点击回车:")

original_name_list= os.listdir(self.path)

for original_name in original_name_list:

#不等于本程序文件,则进行添加,防止修改本文件

if original_name != os.path.split(__file__)[-1]:

os.rename(original_name, content_to_add+original_name)

print("添加完成\n")

#删除文件名中指定内容

def delete(self):

content_to_delete = input("请输入需要删除的内容,输入完成后点击回车:")

#获取目录下所有文件的 列表

original_name_list= os.listdir( self.path)

for original_name in original_name_list:

#不等于本程序文件,则进行修改,防止修改本程序文件

if original_name != os.path.split(__file__)[-1]:

#分离文件名字和后缀,防止修改文件后缀

file_name_list = os.path.splitext(original_name)

if content_to_delete in file_name_list[0]:

#利用replace函数删除

os.rename(original_name, file_name_list[0].replace(

content_to_delete,"")+ file_name_list[1])

print("删除完成\n")

# 可以用正则表达式匹配,删除文件名中有规律的变化内容。

# 例如:删除“附件1 合同1.docx ” “附件2 合同2.docx” ·····中的 “附件n”

def delete_re(self):

original_name_list= os.listdir( self.path)

for original_name in original_name_list:

if original_name != os.path.split(__file__)[-1]:

file_name_list = os.path.splitext(original_name)

try:

#利用正则匹配删除文件名中所有“附件n”,返回过滤后的字符串

result = re.sub("附件\d*", "", file_name_list[0])

os.rename(original_name, result+file_name_list[1])

except Exception as e:

pass

print("删除完成\n")

#删除首尾空格

def delete_space(self):

original_name_list = os.listdir(self.path)

for original_name in original_name_list:

if original_name != os.path.split(__file__)[-1]:

file_name_list = os.path.splitext(original_name)

#strip函数删除首尾空格

os.rename(original_name,file_name_list[0].strip()+file_name_list[1])

print("删除完成\n")

if __name__ == "__main__":

#新建类的实例,传递待修改路径

ex=ChangeFilename("C://Users//wd10//Desktop//新建文件夹")

ex.delete_re()

#ex.add()

ex.delete_space()

OS 模块函数介绍:

更多函数可查看OS函数

1 os.chdir 用于改变当前工作目录到指定的路径。

os.chdir(path)

2 os.listdir 返回指定的文件夹包含的文件或文件夹的名字的列表,以列表格式返回。

os.listdir(path)

3 os.path.split 返回文件的路径和文件名,以元组形式返回。

>>>os.path.split('C:/python/test.py')

('C:/python', 'test.py')

>>>os.path.split('C:/python/test.py')[-1]

test.py

>>>os.path.split(__file__)[-1] #用于获取当前运行py文件的文件名

test.py

4 os.rename 方法用于命名文件或目录。

os.rename(src, dst) #src:要修改的目录名 dst : 修改后的目录名

5 os.path.splitext 将文件名和扩展名分开,以元组形式返回。

>>>os.path.splitext('test.py')

('test', '.py')

>>>os.path.splitext('test.py')[0]

test

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值