python列表批量 修改_python实现多进程按序号批量修改文件名的方法示例
本文实例讲述了python实现多进程按序号批量修改文件名的方法。分享给大家供大家参考,具体如下:
说明
文件名命名方式如图,是数字序号开头,但是中间有些文件删掉了,序号不连续,这里将序号连续起来,总的文件量有40w+,故使用多进程
代码
import os
import re
from multiprocessing import Pool
def getAllFilePath(pathFolder,filter=[".jpg",".txt"]):
#遍历文件夹下所有图片
result=[]
#maindir是当前搜索的目录 subdir是当前目录下的文件夹名 file是目录下文件名
for maindir,subdir,file_name_list in os.walk(pathFolder):
for filename in file_name_list:
apath=os.path.join(maindir,filename)
ext=os.path.splitext(apath)[1]#返回扩展名
if ext in filter:
result.append(apath)
return result
def changName(filePath,changeNum):
fileName=os.path.basename(filePath)
dirName=os.path.dirname(filePath)
pattern = re.compile(r'\d+')
if len(pattern.findall(filePath))!=0:
numInFileName=str(int(pattern.findall(fileName)[0])-changeNum)
newFileName=pattern.sub(numInFileName,fileName)
os.rename(filePath,os.path.join(dirName,newFileName))
print('{1} is changed as {0}'.format(newFileName,fileName))
def changeNameByList(fileList,changNum):
print('fileList len is:{}'.format(len(fileList)))
for fileName in fileList:
changName(fileName,changNum)
print(fileName,' is done!')
if __name__ =='__main__':
allFilePath=getAllFilePath(r'E:\Numberdata\4')
n_total=len(allFilePath)
n_process=8 #8线程
#每段子列表长度
length=float(n_total)/float(n_process)
indices=[int(round(i*length)) for i in range(n_process+1)]
sublists=[allFilePath[indices[i]:indices[i+1]] for i in range(n_process)]
#生成进程池
p=Pool(n_process)
for i in sublists:
print("sublist len is {}".format(len(i)))
p.apply_async(changeNameByList, args=(i,161130))
p.close()
p.join()
注意事项
多进程下python vscode终端debug不报错 注意可能潜在的bug
os.rename()无法将文件命名成已经存在的文件,否则会报错
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》、《Python+MySQL数据库程序设计入门教程》及《Python常见数据库操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
本文标题: python实现多进程按序号批量修改文件名的方法示例
本文地址: http://www.cppcns.com/jiaoben/python/296112.html
python列表批量 修改_python实现多进程按序号批量修改文件名的方法示例相关推荐
- python修改文件名字数字_python实现多进程按序号批量修改文件名的方法示例
本文实例讲述了python实现多进程按序号批量修改文件名的方法.分享给大家供大家参考,具体如下: 说明 文件名命名方式如图,是数字序号开头,但是中间有些文件删掉了,序号不连续,这里将序号连续起来,总的 ...
- python replace函数用法_Python实现的从右到左字符串替换方法示例
本文实例讲述了Python实现的从右到左字符串替换方法.分享给大家供大家参考,具体如下: 一 . 前言 需要用到,但是发现python没有从右边开始替换的内置方法,默认的replace只是从左边开始, ...
- python敏感字替换_python用类实现文章敏感词的过滤方法示例
过滤一遍并将敏感词替换之后剩余字符串中新组成了敏感词语,这种情况就要用递归来解决,直到过滤替换之后的结果和过滤之前一样时才算结束 第一步:建立一个敏感词库(.txt文本) 第二步:编写代码在文章中过滤 ...
- python 返回函数 闭包_python中闭包Closure函数作为返回值的方法示例
前言 首先看看闭包的概念:闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数.这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外 ...
- python列表增加一行_Python 列表中的修改、添加和删除元素的实现
本文介绍的是列表中的修改.添加和删除元素.第一次写博客,如果本文有什么错误,还请大家评论指正.谢谢! 创建的列表大多数都将是动态的,这就意味着列表创建后,将随着程序的运行删减元素. 修改列表元素 修改 ...
- python列表字典操作_Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...
创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...
- python列表浅复制_Python列表的深复制和浅复制示例详解
一.深复制与浅复制 列表是Python中自带的一种数据结构,在使用列表时,拷贝操作不可避免,下面简单讨论一下列表的深复制(拷贝)与浅复制 首先看代码: l1 = [5, 4, 3, 2, 1] # 用 ...
- python列表功能默写_Python list(列表)功能详解
Python List append()方法 描述 append() 方法用于在列表末尾添加新的对象. 语法 append()方法语法: list.append(obj) 参数 obj -- 添加到列 ...
- python列表数据运算_Python基础(2)——数据类型:Numbers、列表、元组、字典、字符串、数据运算...
#Numbers数字分为:int整型,long长整型,float浮点型,complex复数 x1= 10x2= 10.0 print(type(x1),type(x2))#print()函数,用于输出 ...
最新文章
- python bound unbound method
- macbook和 windows共享文件
- Eclipse新建SpringBoot项目,application.properties配置中文乱码
- python3 爬虫 requests安装_爬虫开发环境部署
- python文字识别并获取位置_python实现简单的文字识别
- Zend Guard 7 , Zend Guard Loader处理PHP加密
- Linux Shell脚本专栏_监控100台服务器磁盘利用率脚本_07
- telnet 的使用(ping 与 telnet)
- BIOS、BootLoader、uboot对比
- C#之Chart控件使用
- 如何在matlab中产生瞬态信号,基于小波分析的微弱信号检测及其在Matlab中的仿真...
- Java网页版仿QQ实现在线聊天功能
- 从安防行业网络化态势 看门禁市场发展风向
- x86 单线并发多拨_带宽“单线多拨“倍增大法教程
- Cocos Creator 微信小游戏排行榜
- 概述、 BGP AS 、BGP 邻居、 BGP 更新源 、BGP TTL 、BGP路由表、 BGP 同步
- Spring Boot使用宝兰德BES进行改造和部署
- 如何把密度函数化为标准正态二维分布_高中就开始学的正态分布,原来如此重要...
- NDK开发——FFmpeg实现视频转YUV、视频转RGB显示、音频转PCM、音频播放、音视频同步
- CyberWorld赛博世界是否能成为元宇宙核心力量