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 ...
随机推荐
- Apache HTTPD 换行解析漏洞--CVE-2017-15715
CVE-2017-15715 一.漏洞描述 Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页.其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1 ...
- 我是如何使计算提速>150倍的
我是如何使计算提速>150倍的 我的原始文档:https://www.yuque.com/lart/blog/lwgt38 书接上文<我是如何使计算时间提速25.6倍>. 上篇文章提 ...
- LeetCode 033 Search in Rotated Sorted Array
题目要求:Search in Rotated Sorted Array Suppose a sorted array is rotated at some pivot unknown to you b ...
- argparse使用范例
if __name__ == "__main__": # https://docs.python.org/zh-cn/dev/library/argparse.html impor ...
- 5.1 Spring5源码--Spring AOP源码分析一
目标: 1.什么是AOP, 什么是AspectJ, 2. 什么是Spring AOP 3. Spring AOP注解版实现原理 4. Spring AOP切面原理解析 一. 认识AOP 1.1 什么是 ...
- PyQt(Python+Qt)学习随笔:QListView的viewMode属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListView的viewMode属性用于控制QListView的视图模式,该属性类型为枚举类型Q ...
- 开源版本Visifire的应用
Visifire曾经开源,保持使用开源版本是不会有版权问题滴. 引用的命名控件 using Visifire.Charts; using Visifire.Commons; 一.应用示例主要代码 // ...
- 百度前端技术学院-基础-day17-18
JavaScript小练习 task 1 基于上一个任务中,关于加减乘除的任务,加上对于特殊情况的判断,比如判断两个输入框是否都是正常输入了数字类型的内容,比如除法的时候除数是否为0,当判断到输入有异 ...
- 哪些地方会出现css阻塞,哪些地方会出现js阻塞?
js的阻塞特性: 所有浏览器在下载JS的时候,会阻止一切其他活动,比如其他资源的下载,内容的呈现等等. 直到JS下载.解析.执行完毕后才开始继续并行下载其他资源并呈现内容. 为了提高用户体验,新一代浏 ...
- 数位DP复习笔记
前言 复习笔记第五篇.(由于某些原因(见下),放到了第六篇后面更新)CSP-S RP++. luogu 的难度评级完全不对,所以换了顺序,换了别的题目.有点乱,见谅.要骂就骂洛谷吧,原因在T2处 由于 ...