我有35个文件夹,每个文件夹包含50个图像,每个图像都有不同的名称,如copy(3), rename, youanem,等等.我想将所有文件夹中的所有图像重命名为序列号,即文件夹0包含50个图像,它应该为它们提供0-49之类的数字,并为其余文件夹及其图像提供相同的数字.文件夹名称为0-9,然后是AZ.
这可以为它编程,或者我必须手动完成
这是我最初的尝试,我没有完全尝试:
from os import rename, listdir
folder = "D://images//"
fnames = listdir('.')
for fname in fnames:
if fname.startswith(folder):
rename(fname, fname.replace(name, '', 1))
Run Code Online (Sandbox Code Playgroud)
我不知道如何命名
谢谢
这显示了如何对目录中的所有文件进行排序。例如,如果目录中有50个文件,它将把它们重命名为0-49。您还可以使用一些迭代器遍历文件夹名称,如下所示:
import os
for dirname in os.listdir("."):
if os.path.isdir(dirname):
for i, filename in enumerate(os.listdir(dirname)):
os.rename(dirname + "/" + filename, dirname + "/" + str(i) + ".bmp")
Run Code Online (Sandbox Code Playgroud)
你可以使用 os.walk:
for root, dirs, files in os.walk(folder):
for i,f in enumerate(files):
absname = os.path.join(root, f)
newname = os.path.join(root, str(i))
os.rename(absname, newname)
Run Code Online (Sandbox Code Playgroud)
这应该完全符合您的要求。
小智 6
最简单,最简洁,遍历所有文件并使用索引重命名.
import os
os.getcwd()
collection = "C:/darth_vader"
for i, filename in enumerate(os.listdir(collection)):
os.rename("C:/darth_vader/" + filename, "C:/darth_vader/" + str(i) + ".jpg")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18020 次 |
| 最近记录: |