在工作中经常遇到辛苦渲染得到的序列图名字不对,怎么办!

求人不如求自己,用python写一个批量改名的工具,从此改名不求人。比如我想把名字为cat.01.jpg改为dog.001.jpg

写了半天,我终于写出来了,直接上代码:

import os

# 序列图所在的文件夹

folder = r'E:\temp\test\seq'

# 旧名字

oldName = 'cat'

# 新名字

newName = 'dog'

files = [f for f in os.listdir(folder) if os.path.isfile("%s/%s" %(folder, f)) and oldName in f]

os.chdir(folder)

for f in files:

tmp = f.split(".")

num = tmp[1].zfill(3) # 将数字部分的01改为001

new_file = "{0}.{1}.{2}".format(newName, num, tmp[2])

os.rename(f, new_file)

代码逐行解析

files = [f for f in os.listdir(folder) if os.path.isfile("%s/%s" %(folder, f)) and oldName in f]

这句也可以这样写:

files = []

# 遍历folder文件夹里的每个文件

for f in os.listdir(folder):

if os.path.isfile("%s/%s" %(folder, f)) and oldName in f:

files.append(f)

if os.path.isfile("%s/%s" %(folder, f)) and oldName in f:

这里判断f是文件而且文件名字中带oldName的才会继续。这样就找到了所有名字为oldName的文件。

os.chdir(folder)切换当前工作目录为folder。

tmp = f.split(".")

new_file = "{0}.{1}.jpg".format(newName, tmp[1])

这里将文件的名字拆分成[旧名字,数字序列部分,后缀名],然后用新名字替换旧名字重新组合出完整的新名字。os.rename这个方法可以完成文件改名.

最后一个for循环完成改名。

再来一个带界面的 (在houdini16和maya2017里都可以运行).

# coding=utf-8

import os

import sys

from PySide2 import QtGui

from PySide2 import QtCore

from PySide2 import QtWidgets

class ReNameTool(QtWidgets.QDialog):

def __init__(self):

super(ReNameTool, self).__init__()

self.setWindowTitle(u'序列改名')

main_layout = QtWidgets.QVBoxLayout(self)

folder_layout = QtWidgets.QHBoxLayout()

folder_label = QtWidgets.QLabel("folder: ")

self.folder_lineedit = QtWidgets.QLineEdit()

folder_layout.addWidget(folder_label)

folder_layout.addWidget(self.folder_lineedit)

main_layout.addLayout(folder_layout)

old_name_layout = QtWidgets.QHBoxLayout()

old_name_label = QtWidgets.QLabel("old_name: ")

self.old_name_lineedit = QtWidgets.QLineEdit()

old_name_layout.addWidget(old_name_label)

old_name_layout.addWidget(self.old_name_lineedit)

main_layout.addLayout(old_name_layout)

new_name_layout = QtWidgets.QHBoxLayout()

new_name_label = QtWidgets.QLabel("new_name: ")

self.new_name_lineedit = QtWidgets.QLineEdit()

new_name_layout.addWidget(new_name_label)

new_name_layout.addWidget(self.new_name_lineedit)

main_layout.addLayout(new_name_layout)

ok_btn = QtWidgets.QPushButton("ok")

main_layout.addWidget(ok_btn)

ok_btn.clicked.connect(self.rename_it)

def rename_it(self):

# name.01.jpg

folder = self.folder_lineedit.text()

oldName = self.old_name_lineedit.text()

newName = self.new_name_lineedit.text()

files = [f for f in os.listdir(folder) if os.path.isfile("%s/%s" % (folder, f)) and oldName in f]

os.chdir(folder)

for f in files:

tmp = f.split(".")

num = tmp[1].zfill(3)

new_file = "{0}.{1}.{2}".format(newName, num, tmp[2])

os.rename(f, new_file)

# app = QtWidgets.QApplication(sys.argv)

dialog = ReNameTool()

dialog.show()

# app.exec_()

另外推荐几个入门python的网站

https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000

http://www.runoob.com/python/python-tutorial.html

学了python写了工具还想写个漂亮的界面?学pyqt!

http://www.cnblogs.com/jakeyChen/articles/4103494.html

http://zetcode.com/gui/pyqt5/firstprograms/

https://www.jianshu.com/p/308fea12c8f8

最后写了很多代码,想多人协作外加版本控制怎么办,学git!

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

python怎么写自己的名字_用python写一个序列图改名工具相关推荐

  1. Python音视频开发:消除抖音短视频Logo的图形化工具实现

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<Python音视频开发:消除抖音短视频Logo和去电视台标的实现详解>节介绍了怎么通过Python+Moviepy+OpenCV实现 ...

  2. python能开发安卓app吗_如何Python写一个安卓APP

    前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般 ...

  3. sudo修改文件夹名字_用 Python 高效智能管理文件夹

    #「闪光时刻」主题征文 二期# 大家在写报告.写总结时,是否会先去翻一下以前写过的类似的东西?是否有看过比较好的文章,想保存时却为归类而纠结?是否电脑里的文件越来越多,想删掉一些却又舍不得?身处大数据 ...

  4. python可以制作游戏脚本吗_用Python写一个游戏脚本,你会吗?

    学习python有一段时间了,由于python语言的强大和简洁,是一个不错的脚本语言,就准备做个游戏脚本练练手.如果你也想多练项目实战.可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐 ...

  5. python写游戏棋牌游戏_使用python实现简单五子棋游戏

    使用python实现简单五子棋游戏 发布时间:2020-08-29 06:12:30 来源:脚本之家 阅读:73 作者:weixin_42874933 用python实现五子棋简单人机模式的练习过程, ...

  6. python请输入你的名字_实现《你的名字》同款滤镜,python+opencv

    好久没有上简书,最近上来一看发现这篇文章阅读量远超了其他的文章,还有评论提到说在讲技术的时候卖萌不好.哈哈,当时写的时候完全没想过会有人搜到看,只是为自己的作品留个念想,所以文风比较散漫随意.于是这次 ...

  7. python open方法1001python open方法_怎样才能写出 Pythonic 的代码 #P1001#

    L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...

  8. python绘制自己的名字_用 Python 制作一个艺术签名小工具,给自己设计一个优雅的签名...

    生活中有很多场景都需要我们签字(签名),如果是一些不重要的场景,我们的签名好坏基本无所谓了,但如果是一些比较重要的场景,如果我们的签名比较差的话,就有可能给别人留下不太好的印象了,俗话说字如其人嘛,本 ...

  9. python写小说阅读器_用python给自己DIY一款小说阅读器,如此看来,很简单!

    前一段时间书荒的时候,在喜马拉雅APP发现一个主播播讲的小说-大王饶命.听起来感觉很好笑,挺有意思的,但是只有前200张是免费的,后面就要收费.一章两毛钱,本来是想要买一下,发现说的进度比较慢而且整本 ...

最新文章

  1. 解决关于 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it....报错
  2. 使用coding进行项目代码管理(全程可视化操作!)
  3. 64win7+64Oracle+32plsql
  4. Angular Component 的 renderer 创建机制以及 Angular 版本号的确定方式
  5. 前端学习(2346):global全局样式布局
  6. coap python3_node-coap入门(三)——Observe
  7. ripro子主题eeesucai-child集成后台美化包(适用于设计素材站+资源下载站等)
  8. python 爬虫应用
  9. 游戏接腾讯平台的一些锁事
  10. Log4j2 - java.lang.NoSuchMethodError: com.lmax.disruptor.dsl.Disruptor
  11. python调用C++
  12. 电脑软件从通过运行开启(耍帅必会)
  13. java多线程Thread.sleep方法用法详解
  14. pdg是什么格式文件怎么打开
  15. Layabox创始人谢成鸿:我有一个坚持!
  16. 在线二进制取余计算机,二进制换算(进制转换计算器)
  17. 2021中国山地自行车哪个品牌好全球十大顶级自行车品牌排行榜
  18. 微观计量经济学实证分析中的问题
  19. 华三交换机配置vrrp_VRRP原理与配置 华为、华三交换机,路由器
  20. 从阿西莫夫机器人三大定律 谈起

热门文章

  1. ElasticSearch用户管理
  2. Ubuntu18.04 + NVIDIA Quadro T1000显卡驱动安装
  3. 软件测试是干什么的?它为什么需要这个岗位?
  4. Linux安装配置VNC(远程登录图形桌面系统)
  5. 陆地专业移动无线电系统市场现状及未来发展趋势
  6. java旧版本下载官网地址
  7. 2022-07-08 第七小组 闫馨月 学习笔记
  8. PDF文件新建空白文档该如何操作
  9. vue实现获取当前日期时间并实时刷新
  10. Oracle数据库数据丢失恢复的几种方法总结