【发布时间】:2015-08-26 07:00:15
【问题描述】:
“我的文档”中有超过 1000 个文件夹。在每个文件夹中只有 4 张照片需要按“北”“东”“南”和“西”的顺序命名。目前它们被命名为 DSC_XXXX。我已经编写了这个脚本,但它没有执行。
import sys, os
folder_list = []
old_file_list = []
newnames = [North, South, East, West]
for file in os.listdir(sys.argv[1]):
folder_list.append(file)
for i in range(len(folder_list)):
file = open(folder_list[i], r+)
for file in os.listdir(sys.argv[1] + '/' folder_list[i]):
old_file_list.append(file)
os.rename(old_file_list, newnames[i])
我的思路是把这1000个文件夹的名字全部取出来存放在folder_list中。然后打开每个文件夹,将 4 个图片名称保存在 old_file_list 中。从那里我想使用 os.rename(old_file_list, newnames[i]) 将 4 张照片重命名为 North East South 和 West。然后我希望它循环“我的文档”中的尽可能多的文件夹。我是 python 新手,任何帮助或建议将不胜感激。
【问题讨论】:
-
如果新名称“按此顺序”应用,您需要先对文件夹的内容进行排序,因为
os.listdir返回一个任意排序的list。此外,您可以直接迭代folder_list而不是使用range(len())来处理索引。 -
哦,
os.listdir()已经返回了一个list,所以你不需要遍历它并构建一个新的。只需保存对它的引用:folder_list = os.listdir(sys.argv[1])。 -
另外,你不需要
open()文件夹...尽管你用循环变量来掩盖它。
标签: python file python-3.x rename file-rename