Python--批量修改文件名称
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--批量修改文件名称的更多相关文章
- python批量修改文件名称
参考文章:http://www.cnblogs.com/ma6174/archive/2012/05/04/2482378.html 最近遇到一个问题,在网上下载了一批视频课程,需要将每节课的名称标号 ...
- node批量修改文件名称
let fs = require('fs');//引用文件系统模块 let PATH = `./app_zijietiaodong/`;//当前文件夹 let ext = { readFileList ...
- 【Python】简单的脚本,轻松批量修改文件名称
使用python脚本,批量修改文件夹名称 先创建一些没用的案例文件 import os #创建新文件夹 dir = os.makedirs('D:\\SomeThing\\testfile') #将文 ...
- Java实现批量修改文件名称
import java.io.File; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; /** ...
- php实现批量修改文件名称
场景叙述:比如我要将D:\WWW\img\Gastroenterology这个文件夹下图片要重新命名成1.jpg,2.jpg.......这样的有规律名字, 如下图: 那么我们就可以利用php的ren ...
- php批量修改文件名称
<?php//利用PHP目录和文件函数遍历用户给出目录的所有的文件和文件夹,修改文件名称function fRename($dirname){ if(!is_dir($dirname)){ ec ...
- Python批量修改文件夹内所有json文件中部分内容
#coding=utf-8 import os import json #获取目标文件夹的路径 filedir = os.getcwd()+'/ceshi' #获取文件夹中的文件名称列表 filena ...
- Python 批量修改文件夹名称
修改为: # -*- coding: utf-8 -*- import os, sys,re path=u"E:\\C#网络编程基础" dirs=os.listdir(path) ...
- python批量修改图片名称
import os class BatchRename(): def rename(self): # windows环境 """ os.rename() 方法用于命名文件 ...
- windows powershell上批量修改文件名称
$i = Get-ChildItem -Path c:\pictures -Filter *.jpg | ForEach-Object { $extension = $_.Extension $new ...
随机推荐
- Prafab Varient 预制体变体
预制体与类的类比思维: 预制体相当于一个类,当它应用到场景当中,就是一个实例. 类的继承特性也充分运用到预制体中,即预制体变体. 相似预制体的需求场景: 例子1:多个游戏的窗口 ...
- Beta冲刺随笔——Day_Seven
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 团队进行Beta冲刺 作业正文 正文 其他参考文献 无 今日事今日毕 林涛: ...
- moviepy音视频剪辑VideoClip类fl_image方法image_func报错ValueError: assignment destination is read-only解决办法
☞ ░ 前往老猿Python博文目录 ░ moviepy音视频剪辑模块的视频剪辑基类VideoClip的fl_image方法用于进行对剪辑帧数据进行变换. 调用语法:fl_image(self, im ...
- Python正则表达式书写容易碰到的陷阱:\W*和\W*?匹配过程遇到的问题
老猿在分析<Python正则表达式\W+和\W*匹配过程的深入分析>中的问题时,想到一个问题,如果"re.split('(\W*)','Hello,world')"的处 ...
- 数据结构——创建链表或树节点的小trick(哑结点)
一般创建链表时,我们可以创建一个哑结点,来保存头部 * struct ListNode { * int val; * ListNode *next; * ListNod ...
- 关于EF框架EntityState的几种状态
在使用EF框架时,我们通常都是通过调用SaveChanges方法把增加/修改/删除的数据提交到数据库,但是上下文是如何知道实体对象是增加.修改还是删除呢?答案是通过EntityState的枚举值来判断 ...
- 团队作业4-Day7
团队作业4-Day7 项目git地址 1. 站立式会议 2. 项目燃尽图 3. 适当的项目截图 4. 代码/文档签入记录(部分) 5. 每人每日总结 吴梓华:今日补充界面小漏洞,修复部分bug 白军强 ...
- MySQL日期和时间函数汇总
本文基于MySQL8.0 本文介绍MySQL关于日期和时间操作的函数. 日期和时间函数 函数 描述 ADDDATE() 给日期值添加时间值 ADDTIME() 添加time CONVERT_TZ() ...
- mybatis-generator 插件用法
xml 配置 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorCo ...
- 题解-Quantifier Question
Quantifier Question 有长度为 \(n\) 的序列 \(x\{n\}\),有 \(m\) 个条件 \((j_i,k_i)\).有 \(n\) 个待定的条件符 \(Q_i\in\{\f ...