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. Java基础教程——字节流

    IO流 水流 特点 连续性 逝者如斯夫,不舍昼夜: 方向性 一江春水向东流.水往低处流.百川东到海,何时复西归?少壮不努力,老大徒伤悲! 源头尽头 唯有源头活水来:覆水难收 Java里的IO也有这样的 ...

  2. 解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的错误问题

    最近想再购买一台虚拟服务器做项目测试,之前在西部数码购买的已经过期了,在同事的推荐下去搬瓦工购买了一台服务器,听他介绍在这里购买服务器很便宜($19.99/年)而且还是国外的,看着相比之前的确实挺便宜 ...

  3. 「有数可据」选择IT行业的1000个理由!

    这你要我编 我也编不出一千个呀 现如今转行IT 还需要1000个理由吗? 不 不需要的 一个就好   10月初 CSDN博主「有数可据」 发布了 2020年10月国内程序员薪资情况 他本人是这样说的☟ ...

  4. loading爬坑--跳出思维误区

    最近在摸loading这个登录的loading动画,爬了一些坑. 第一坑--百度坑 我们爬的坑,前人都已经已经爬过了.并且把路都放在度娘了.--鲁迅 我最开始是不知道这个直接叫loading的,最开始 ...

  5. golang拾遗:嵌入类型

    这里是golang拾遗系列的第三篇,前两篇可以点击此处链接跳转: golang拾遗:为什么我们需要泛型 golang拾遗:指针和接口 今天我们要讨论的是golang中的嵌入类型(embedding t ...

  6. PyQt(Python+Qt)学习随笔:Qt Designer中主窗口对象的tabShape属性

    tabShape属性用于控制主窗口标签部件(Tab Widget)中的标签的形状,对应类型为QTabWidget.TabShape,有两种取值: 1.QTabWidget.Rounded:对应值为0, ...

  7. print(end="\r") 滚动输出到屏幕

    for i in range(10000): print(i, end = "\r") print(end="\r") 滚动输出到屏幕

  8. 题解-CF1065E Side Transmutations

    CF1065E Side Transmutations \(n\) 和 \(m\) 和 \(k\) 和序列 \(b_i(1\le i\le m,1\le b_i\le b_{i+1}\le \frac ...

  9. 题解-Enemy is weak

    Enemy is weak 求序列 \(a\{n\}\) 中的三元逆序对数量. 数据范围:\(3\le n\le 1e6\). 这题真是一道又好又水的题,可是我看别人的题解做法真是玄学难懂,于是蒟蒻要 ...

  10. linux 下指定配置文件安装mongodb

    下载 官网下载地址:https://www.mongodb.com/try/download/community,并上传linux 服务器 二.mongon目录结构下 /data/mongo . lo ...