使用python对文件名进行批量修改(二)2020-06-08---删除指定字符串

使用python对文件名进行批量修改(二)2020-06-08---删除指定字符串,第1张

本文接上一篇 使用python对文件名进行批量修改2020-04-24 待续内容,主要介绍如何删除文件名前缀及后缀,方法为基于lstrip()和partition()函数的实现。

(1)删除文件名前缀; 如 “ www.cn-ki.net_ ”。

(2)删除指定字符之后的内容;如 ”_张三“ 、 “_李四” 、 ”_Mike“ 等。

(1)删除前缀函数 str.lstrip()

字符串s中的’aabb_‘删除,运行结果如图:

(2)删除指定字符之后内容,使用函数 str.partition()

将字符串s中的’_aabb‘删除,运行结果如图:

Python 3.6.4

所用模块:import os

(一)打开文件夹,获得旧文件名

path=r"D:\exp\resultdata"   //文件夹途径

for (root, dirs, files) in os.walk(path):

os.walk(path)//遍历D:\exp\resultdata下文件

(二)获得新文件名(如何打开一个文件)

一般新文件名都保存在一个文件中

new_names_files=open('文件名.txt','r')

content=open('文件名.txt','r')(此时content是一个含有所有new name 的列表)

注意:对新名字(字符串)会有一些 *** 作

(1)对文件名(字符)的分割

用split()进行分割

a=''wer.werrew/"

(2)list 添加新的元素、

用append()进行添加

(3)字典添加新的元素

用update()进行添加

实例:

(三)重命名

利用os.rename()函数

实例:旧名字与新名字的数字相对

file=['1.max','2.max'……]//旧名字

for file in files:

        oldname = os.path.join(root,file)

        namesp=file.split('.')

        new_namesp=d[int(namesp[0])]//数字相对

        newname = os.path.join(root,new_namesp)

        os.rename(oldname,newname)

方法有很多,例如使用首尾位置标记^$+非法字符集[^]实现:

regex = r'^[^\\/:\*\?"<>\|]+$' #不能为空,不能含有\/:*?"<>|等字符

tests = ['abc_def',

'abc.def',

'abc/def',

'\?"',

'']

matches = [i for i in tests if re.match(regex,i)]

print(matches)

还可以通过负向零宽断言(?!)等方式实现。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11896091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存