我有一个如下所示的目录结构:
[me@mypc]$ tree .
.
??? set01
? ??? 01
? ? ??? p1-001a.png
? ? ??? p1-001b.png
? ? ??? p1-001c.png
? ? ??? p1-001d.png
? ? ??? p1-001e.png
? ??? 02
? ? ??? p2-001a.png
? ? ??? p2-001b.png
? ? ??? p2-001c.png
? ? ??? p2-001d.png
? ? ??? p2-001e.png
Run Code Online (Sandbox Code Playgroud)
我想编写一个python脚本来将所有*a.png重命名为01.png,*b.png重命名为02.png,依此类推.我想我必须使用类似的东西find . -name '*.png',而我在python中发现的最相似的东西是os.walk.但是,os.walk我必须检查每个文件,如果它是png,那么我将它与它的根连接起来,不知何故不那么优雅.我想知道是否有更好的方法来做到这一点?提前致谢.
Mic*_*ior 10
对于像这样的搜索模式,你可能会逃脱glob.
from glob import glob
paths = glob('set01/*/*.png')
Run Code Online (Sandbox Code Playgroud)
您可以使用os.walk遍历目录树.也许这有效吗?
import os
for dpath, dnames, fnames in os.walk("."):
for i, fname in enumerate([os.path.join(dpath, fname) for fname in fnames]):
if fname.endswith(".png"):
#os.rename(fname, os.path.join(dpath, "%04d.png" % i))
print "mv %s %s" % (fname, os.path.join(dpath, "%04d.png" % i))
Run Code Online (Sandbox Code Playgroud)