利用Python批量重命名文件夹下文件
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# -*- coding:utf8 -*- import os
from string import digits class BatchRename(): def __init__(self):
#文件存放目录
self.spath = 'Sensetime/'
self.dpash='Sensetime-rename/'
self.endpash='Sensetime-end/' def rename(self):
filelist = os.listdir(self.spath)
rename_fileList=os.listdir(self.dpash)
total_num = len(filelist)
i = 0
num = 0
for item in filelist:
if item.endswith('.jpg'):
if len(item.split("-")) == 2:
src = os.path.join(os.path.abspath(self.spath), item)
dst = os.path.join(os.path.abspath(self.dpash), item.split("-")[0] + '.jpg')
try:
print(src)
os.rename(src, dst)
print('converting %s to %s ...'% (item, item.split("-")[0] + '.jpg'))
i = i + 1
except Exception as e:
if e.args[0] == 17:
print("####",item)
dst = os.path.join(os.path.abspath(self.dpash), item.split("-")[0] + str(num) + '.jpg')
os.rename(src, dst)
num+=1
#continue
else:
print(item)
print(len(item.split("-")))
print('total %d to rename & converted %d pngs'%(total_num, i)) #处理名字重名 重名数量统计入字典
def CheckDuplicateDname(self):
i=0
name_dict={}
rename_fileList = os.listdir(self.dpash)
for item in rename_fileList:
name=item.translate(str.maketrans('', '', digits)).split(".")[0]
src = os.path.join(os.path.abspath(self.dpash), item)
dst = os.path.join(os.path.abspath(self.endpash), name + '.jpg')
if name not in name_dict.keys():
print(item,item not in name_dict)
os.rename(src, dst)
name_dict[name] = 1
i+=1 else:
try:
dst = os.path.join(os.path.abspath(self.endpash), name + str(name_dict[name]) +'.jpg')
os.rename(src, dst)
print('converting %s to %s ...' % (item, item.split("-")[0] + '.jpg'))
i = i + 1
name_dict[name]+=1
except Exception as e:
print(item) # contin
print(name_dict)
print("total:",i)
print(sum(name_dict.values())) if __name__ == '__main__':
demo = BatchRename()
demo.rename()
demo.CheckDuplicateDname()
去除字符串中的数字:
name=item.translate(str.maketrans('', '', digits)).split(".")[0]
利用Python批量重命名文件夹下文件的更多相关文章
- Python批量重命名指定目录下文件的两种方法
#法一 import os path = "C://Python34//" for file in os.listdir(path): if os.path.isfile(os.p ...
- 利用Python批量重命名一系列文件名杂乱的文件
假设目录下面有这样一系列命令杂乱的文件: OPENFOAM -TRAINING- PART- #1.pdf OPENFOAM - TRAINING- PART- #2.pdf OPENFOAM- TR ...
- php文件夹下文件批量重命名
php文件夹下文件批量重命名 <?php header("Content-type:text/html;charset=utf-8"); $dir = __DIR__.'./ ...
- python调用另一个文件中的代码,pycharm环境下:同文件夹下文件(.py)之间的调用,出现红线问题
如何调用另一个python文件中的代码无论我们选择用何种语言进行程序设计时,都不可能只有一个文件(除了“hello world”),通常情况下,我们都需要在一个文件中调用另外一个文件的函数呀数据等等, ...
- Linux上统计文件夹下文件个数以及目录个数
对于linux终端用户而言,统计文件夹下文件的多少是经常要做的操作,于我而言,我会经常在谷歌搜索一个命令,“如何在linux统计文件夹的个数”,然后点击自己想要的答案,但是有时候不知道统计文件夹命令运 ...
- Projects\Portal_Content\Indexer\CiFiles文件夹下文件占用磁盘空间过大问题。
C:\Program Files\Microsoft Office Servers\12.0\Data\Office Server\Applications\9765757d-15ee-432c-94 ...
- Linux统计某文件夹下文件、文件夹的个数
统计某文件夹下文件的个数 ls -l |grep "^-"|wc -l 统计某文件夹下目录的个数 ls -l |grep "^d"|wc -l 统计文件夹下文件 ...
- Android Studio的使用(十)--读取assets、Raw文件夹下文件,以及menu、drawable文件夹
1.直接在/src/main目录下面新建assets目录 2.接下来即可读取文件 3.读取Raw文件夹下文件也类似.首先在res文件夹下新建raw目录,然后放入需要的文件即可读取. 4.menu和dr ...
- Linux统计某文件夹下文件的个数
ls -l |grep "^-"|wc -l 统计某文件夹下目录的个数 ls -l |grep "^d"|wc -l 统计文件夹下文件的个数,包括子文件夹里的 ...
随机推荐
- 前端开发: webStorm手机真机调试
目录 1. 做好准备工作 2. 开始设置 3. 配置路径 4. 匹配路径设置 5. 设置完成,即可体验 文章首发微信公众号飙码人生 2018-05-21 18:21:15 1. 做好准备工作 安装we ...
- JZOJ 1774. 合并果子 (Standard IO)
1774. 合并果子 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 在一个果园里,多多已经将所有的果子打 ...
- VUE一 基础语法
一.模板语法 二.Class和Style绑定 三.条件渲染 四.vue事件处理器 五.vue组件
- sf-git机制
为什么要专门写一篇关于sf科技公司的GIT管理机制呢?因为本周经历了两天的学习和考试,刚开始没在意,因为之前公司也用的GIT,所以没怎么看视频,就看了文档,练习考试时候才发现并非以前的那种git流程, ...
- 15 Spring Data JPA概述
Spring Data JPA 概述 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和 ...
- Lucene查询语法汇总
目录 一.单词查询 二.通配符查询 三.模糊查询 四.近似查询 五.范围查询 六.优先级查询 七.逻辑操作 八.括号分组 九.转义特殊字符 Lucene是目前最为流行的开源全文搜索引擎工具包,提供了完 ...
- springboot项目中thymeleaf布局应用
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- springboot项目中接口入参的简单校验
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- Tomcat 启动过滤器异常
严重 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.filterStart 启动过滤器异常 ja ...
- 如何将自己的测试脚本分离成PO模式的测试框架
1 PO模式 1.1 PO模式介绍 Page Object Model 测试页面和测试脚本分离,即页面封装成类,供测试脚本调用. (将项目分为page.py和test.py) 测试用例:就是excel ...