使用python对文件名进行批量修改2020-04-24

1. 问题描述

所需要实现的修改的种类

修改的方式:指增、删、更。

修改的内容:包括对前缀(或后缀)、特定字段。

2.解决思路

step1:实现单个文件名的修改
  如何增加前/后缀,如何插入特定字段;
  如何删除前/后缀,如何插入特定字段;
  如何更换前/后缀,如何插入特定字段。

step2实现批量操作

3.寻找所需函数及方法

根据1.2确定的解决思路,寻找相应的功能函数。

(1)读取文件名的函数

os模块,os.listdir()

(2)文件名修改的函数

①修改文件名函数:os.rename()
②建立修改规则的函数:translate()方法进行转换,并须通过str.maketrans()建立转换规则表。

(3)批量修改用循环语句

for循环

4.相关函数用法解析

(1) translate()用法说明

用途:S.translate(transtab) -> str
  将S中的字符按照一定的规则转换为str。 其中,转换规则由转换表transtab来给出。
语法
S.translate (transtab)
参数说明
   transtab -- 转换规则表,需要借助maketrans()方法(详见下一条)。

(2)str.maketrans()用法说明

用途:返回一个可用于str.translate()的转换表。
语法
str.maketrans (arg1[,arg2[,arg3])
参数说明
 如果只有一个参数,那么它必须是一个将Unicode序数(整数)或字符映射到Unicode序数、字符串或None的字典。字符键将被转换为序数。
 如果有两个参数,它们必须是<font color=red>长度相等</font>的字符串,在得到的字典中,arg1中的每个字符将映射到arg2中相同位置的字符。
 如果有第三个参数,arg3必须是一个字符串,其字符将在结果中映射为None,即删除arg3所指定字体串中的字符。

(3)示例1:对给定字符串进行修改

#建立转换规则表
intab = "abc"
outtab = "123"
transtab =  str.maketrans(intab,outtab)
#进行转换
sentence = "This is a test string!" 
print(sentence.translate(transtab))

输出结果将sentence中的’a‘替换为了’1‘,如图

This is 1 test string!

(4)os.rename()用法说明

用途:重命名文件或目录。
语法
os.rename(old_fname,new_fname)
参数说明
  old_fname---原文件名。
  new_fname---修改后的新文件名。

(5)示例2:对指定文件夹中文件加前缀

# 导入os模块
import os
# 获取文件路径
path = 'C:\\myProject\\test'
# 设置工作路径
os.chdir(path)
# 读取文件名
filelist = os.listdir(path)
# 修改文件名
for fname in filelist:
    os.rename(fname, '[pre]'+fname) # 加前缀   

5.总体解决方案

实现对任意指定文件夹中的文件,进行任意所需要的重命名。

示例3:对指定文件夹中文件进行重命名

# 导入os模块
import os
# 获取文件路径
path = 'C:\\myProject\\test'
# 设置工作路径
os.chdir(path)
# 读取文件名
filelist = os.listdir(path)
# 建立重命名规则
transtab =  str.maketrans('','','[pre]')  #此规则为,删除文件名中所含有的[pre]
# 修改文件名
for fname in filelist:
    os.rename(fname, fname.translate(transtab)) # 加前缀  

说明
transtab = str.maketrans('','','[pre]')
此规则为,删除文件名中所含有的各个单独字符,更确切的方式应当使用正则表达式
有关正则表达式,且听下回分解

6.本文运行环境说明

Python 3.6.4

注意:python 2 中 translate()函数使用方法略有不同。

7.主要参考资料

1.Python translate()方法https://www.runoob.com/python/att-string-translate.html

2.Python maketrans()方法https://www.runoob.com/python/att-string-maketrans.html

3.批量删除含特殊符号的前缀/后缀文件名——python实现https://blog.csdn.net/weixin_39975436/article/details/88668728

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容

  • 参考:http://blog.csdn.net/wuce_bai/article/details/50827393...
    Babyzpj阅读 797评论 0 0
  • 4.7. Text Sequence Type — str Python中的文本数据由str对象或strings处...
    xpf2000阅读 3,227评论 0 2
  • 序列 序列是一种有序的集合,就是诸如数组、链表或者对外呈现类似结构的数据结构,特点就是拥有一串的元素,并且这些元素...
    templark阅读 302评论 0 1
  • Python史上最全开发总结(转自静熙老师哈哈哈) 两本不错的书: 《Python参考手册》:对Python各个标...
    春风在抱阅读 756评论 1 4
  • 亲子阅读打卡第274天(1月16日)今天晚上给崽崽讲了一个《绿毛狮子》的故事。故事讲的是在森林里,住着一头被称作大...
    vv167阅读 1,736评论 0 0