python怎么写自己的名字_用python写一个序列图改名工具
在工作中经常遇到辛苦渲染得到的序列图名字不对,怎么办!
求人不如求自己,用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写一个序列图改名工具相关推荐
- Python音视频开发:消除抖音短视频Logo的图形化工具实现
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<Python音视频开发:消除抖音短视频Logo和去电视台标的实现详解>节介绍了怎么通过Python+Moviepy+OpenCV实现 ...
- python能开发安卓app吗_如何Python写一个安卓APP
前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般 ...
- sudo修改文件夹名字_用 Python 高效智能管理文件夹
#「闪光时刻」主题征文 二期# 大家在写报告.写总结时,是否会先去翻一下以前写过的类似的东西?是否有看过比较好的文章,想保存时却为归类而纠结?是否电脑里的文件越来越多,想删掉一些却又舍不得?身处大数据 ...
- python可以制作游戏脚本吗_用Python写一个游戏脚本,你会吗?
学习python有一段时间了,由于python语言的强大和简洁,是一个不错的脚本语言,就准备做个游戏脚本练练手.如果你也想多练项目实战.可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐 ...
- python写游戏棋牌游戏_使用python实现简单五子棋游戏
使用python实现简单五子棋游戏 发布时间:2020-08-29 06:12:30 来源:脚本之家 阅读:73 作者:weixin_42874933 用python实现五子棋简单人机模式的练习过程, ...
- python请输入你的名字_实现《你的名字》同款滤镜,python+opencv
好久没有上简书,最近上来一看发现这篇文章阅读量远超了其他的文章,还有评论提到说在讲技术的时候卖萌不好.哈哈,当时写的时候完全没想过会有人搜到看,只是为自己的作品留个念想,所以文风比较散漫随意.于是这次 ...
- python open方法1001python open方法_怎样才能写出 Pythonic 的代码 #P1001#
L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...
- python绘制自己的名字_用 Python 制作一个艺术签名小工具,给自己设计一个优雅的签名...
生活中有很多场景都需要我们签字(签名),如果是一些不重要的场景,我们的签名好坏基本无所谓了,但如果是一些比较重要的场景,如果我们的签名比较差的话,就有可能给别人留下不太好的印象了,俗话说字如其人嘛,本 ...
- python写小说阅读器_用python给自己DIY一款小说阅读器,如此看来,很简单!
前一段时间书荒的时候,在喜马拉雅APP发现一个主播播讲的小说-大王饶命.听起来感觉很好笑,挺有意思的,但是只有前200张是免费的,后面就要收费.一章两毛钱,本来是想要买一下,发现说的进度比较慢而且整本 ...
最新文章
- 解决关于 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it....报错
- 使用coding进行项目代码管理(全程可视化操作!)
- 64win7+64Oracle+32plsql
- Angular Component 的 renderer 创建机制以及 Angular 版本号的确定方式
- 前端学习(2346):global全局样式布局
- coap python3_node-coap入门(三)——Observe
- ripro子主题eeesucai-child集成后台美化包(适用于设计素材站+资源下载站等)
- python 爬虫应用
- 游戏接腾讯平台的一些锁事
- Log4j2 - java.lang.NoSuchMethodError: com.lmax.disruptor.dsl.Disruptor
- python调用C++
- 电脑软件从通过运行开启(耍帅必会)
- java多线程Thread.sleep方法用法详解
- pdg是什么格式文件怎么打开
- Layabox创始人谢成鸿:我有一个坚持!
- 在线二进制取余计算机,二进制换算(进制转换计算器)
- 2021中国山地自行车哪个品牌好全球十大顶级自行车品牌排行榜
- 微观计量经济学实证分析中的问题
- 华三交换机配置vrrp_VRRP原理与配置 华为、华三交换机,路由器
- 从阿西莫夫机器人三大定律 谈起