Dr. he 最近忙着毕业论文的事情,需要将一千多张超声切面图的文件名后缀名去掉,例如:剔除文件名"1802014223FAMFIBAI.jpg"的第11个字符至第18个字符”FAMFIBAI”,新文件名称"1802014223.jpg"。看到他一个个文件重命名,我也是“醉了”。虽然做自动化测试的,但是比较少直接用python写脚本,尝试着解决他的需求。结合网友的分享的资料,写下方法change_filename_substring(),以下代码能解决
实际需求,适合初学者。不足之处,欢迎指出修正!

import os
import re

def change_filename_substring():
# path为批量文件的文件夹的路径
path = input("请输入文件夹完整路径(如C:/Users/Default/Pictures):")
count = 0 # 重命名的文件数量
msg = ''
while '\\' in path or '/' not in path:
path = input("输入的文件夹路径有误,请按规范重新输入,退出请按’#‘:")
if path == '#':
exit() # 退出程序
file_names = os.listdir(path) # 指定文件夹中的文件列表
for name in file_names:
if len(name) == 22:
new_name = re.sub(name[10:18], '', name) # 以''替换文件名的第11至第18个字符,第一个字符的索引是’0‘
print("剔除当前文件名{}的第10个字符至第17个字符:{},文件新名称:{}\n".format(name, name[10:18], new_name))
os.chdir(path) # chdir => change_directory,切换到path目录,方便直接rename
# try except 捕捉异常
try:
os.rename(name, new_name) # 用new_name重命名文件
except BaseException as except_msg: # 定义变量except_msg接收异常信息
msg = except_msg
print(except_msg)
print("\n")
if msg == '':
count += 1 # 重命名的文件数量

new_file_names = os.listdir(path)
print("指定目录包含的文件数量:{},重命名的条件:包括后缀名共22个字符,重命名后与其他文件不重名,符合条件的文件数量:{}".format(len(file_names), count))
print("修改前的文件名列表:%s" % file_names)
print("修改后的文件名列表:{}".format(new_file_names))
print("\n任务完成!")

if __name__ == '__main__':
change_filename_substring()
 

Python--批量修改文件名称的更多相关文章

  1. python批量修改文件名称

    参考文章:http://www.cnblogs.com/ma6174/archive/2012/05/04/2482378.html 最近遇到一个问题,在网上下载了一批视频课程,需要将每节课的名称标号 ...

  2. node批量修改文件名称

    let fs = require('fs');//引用文件系统模块 let PATH = `./app_zijietiaodong/`;//当前文件夹 let ext = { readFileList ...

  3. 【Python】简单的脚本,轻松批量修改文件名称

    使用python脚本,批量修改文件夹名称 先创建一些没用的案例文件 import os #创建新文件夹 dir = os.makedirs('D:\\SomeThing\\testfile') #将文 ...

  4. Java实现批量修改文件名称

    import java.io.File; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; /** ...

  5. php实现批量修改文件名称

    场景叙述:比如我要将D:\WWW\img\Gastroenterology这个文件夹下图片要重新命名成1.jpg,2.jpg.......这样的有规律名字, 如下图: 那么我们就可以利用php的ren ...

  6. php批量修改文件名称

    <?php//利用PHP目录和文件函数遍历用户给出目录的所有的文件和文件夹,修改文件名称function fRename($dirname){ if(!is_dir($dirname)){ ec ...

  7. Python批量修改文件夹内所有json文件中部分内容

    #coding=utf-8 import os import json #获取目标文件夹的路径 filedir = os.getcwd()+'/ceshi' #获取文件夹中的文件名称列表 filena ...

  8. Python 批量修改文件夹名称

    修改为: # -*- coding: utf-8 -*- import os, sys,re path=u"E:\\C#网络编程基础" dirs=os.listdir(path) ...

  9. python批量修改图片名称

    import os class BatchRename(): def rename(self): # windows环境 """ os.rename() 方法用于命名文件 ...

  10. windows powershell上批量修改文件名称

    $i = Get-ChildItem -Path c:\pictures -Filter *.jpg | ForEach-Object { $extension = $_.Extension $new ...

随机推荐

  1. 交换机Access、Trunk和Hybrid 接口类型及区别

    交换机接口的类型可以是 Access.Trunk和Hybrid. Access类型的接口仅属于一个VLAN,只能接收.转发相应VLAN的帧: Trunk类型接口则默认属于所有VLAN,任何 Tagge ...

  2. jquery动态生成的select下拉框,怎么设置默认的选中项?

    这两天都被这问题困扰,可能是我不太懂前端.我做layui表格行编辑,点击编辑按钮弹出layer,里边有一个民族的下拉框不能直接显示后台传过来的值.我把民族数组用jquery添加到了select里边,可 ...

  3. 第15.36节 PyQt(Python+Qt)入门学习:containers容器类部件QFrame框架部件介绍

    一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有如下: 容器中的Frame为一个矩形的框架对象,对应类QFrame,QFrame类是PyQt中带框架 ...

  4. PyQt(Python+Qt)学习随笔:QTabWidget部件选项卡可用状态访问方法isTabEnabled、setTabEnabled

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTabWidget的每个选项卡及页面可设置是否可用,如果选项卡不可用时,则不能通过操作手工切换到该 ...

  5. 第10.8节 Python包的导入方式详解

    一. 包导入与模块导入的关系 由于包本质上是模块,其实对模块的许多导入方法都适用于包,但由于包的结构与模块有差异,所以二者还是有些区别的: 对包的导入,实际上就是包目录下的__init__.py文件的 ...

  6. PyQt(Python+Qt)学习随笔:QTreeWidgetItem项标记flags相关方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeWidgetItem项可以通过flags()返回项的标记,返回值类型为类型Qt.ItemF ...

  7. PyQt(Python+Qt)学习随笔:部件的minimumSize、minimumSizeHint之间的区别与联系

    1.minimumSize是一个部件设置的最小值,minimumSizeHint是部件Qt建议的最小值: 2.minimumSizeHint是必须在布局中的部件才有效,如果是窗口,必须窗口设置了布局才 ...

  8. 建立SQL Server用户登录

    第一步:右击服务器名,点击"属性",选择"安全性",选中"Sql server和Windows身份验证模式". 第二步:鼠标右键点击安全性中 ...

  9. python 练习洗牌

    生成随机数需要引入random模块,学习下random模块中常用的几个函数: random.random() 用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.un ...

  10. iOS崩溃日志 如何看

    日志主要分为六个部分:进程信息.基本信息.异常信息.线程回溯.线程状态和二进制映像. 我们在进行iPhone应用测试时必然会在"隐私"中找到不少应用的崩溃日志,但是不会阅读对于很多 ...