利用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 统计文件夹下文件的个数,包括子文件夹里的 ...
随机推荐
- JS面试准备二
1.常用的字符串方法 1. indexOf:查找字符串某一项的初始位置2. slice:截取字符串(包含起始位置,不包含结束位置) 不会根据参数大小,交换参数位置 如果出现-1按倒数第一个数,如果出现 ...
- 纯CSS实现元素垂直水平居中-非固定宽度
这里不讨论行内元素的居中!! 盒子垂直居中+水平居中的需求时经常遇到的,看到的较多实现逻辑是固定content-box的宽度,通过让margin-left和margin-top等于宽或高的负一半来实现 ...
- Flutter 拖拽控件Draggable看这一篇就够了
注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Draggable系列组件可以让我们拖动组件. Dragg ...
- linux 安装Mosquitto
这篇博客讲的很好:https://www.cnblogs.com/chen1-kerr/p/7258487.html 此处简单摘抄部分内容 1.下载mosquitto安装包 源码地址:http://m ...
- php -v 找不到命令
[root@localhost htdocs]# php -v -bash: php: command not found export PATH=$PATH:/usr/local/php7/bin ...
- Aircrack-ng无线审计工具破解无线密码
Aircrack-ng工具 Aircrack-ng是一个与802.11标准的无线网络分析的安全软件,主要功能有网络探测.数据包嗅探捕获.WEP和WPA/WPA2-PSK破解.Aircrack可以工作在 ...
- golang.org/x/sys/unix: unrecognized
安装的过程中报错 : package golang.org/x/sys/unix: unrecognized import path "golang.org/x/sys/unix" ...
- vue-router需要注意的点
1.在编程式导航中,如果提供了path,params会被忽略:需要提供name,或手写完整的带有参数的path;以下写法可取: const userId = '123'; 1.this.$route ...
- 常见的几种JavaScript内存泄露
总结一下常见的几种JavaScript内存泄露: 1.意外的全局变量 全局变量属于window对象,所以只会随着window销毁才会销毁. 2.console.log() conaole.log()函 ...
- 干货来啦。Flask框架看这一篇就够了,关注不迷路,Jeff带你看源码。开发技术时时更新
目录 一.初识Flask 1.1 什么是flask? 1.2 为什么要有flask? 二.Flask快速启动 三.Flask四剑客 三.flask的配置文件 可以配置的属性 四.flask路由 4.1 ...