我在“我的文档”文件夹中有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。然后,我希望它可以循环执行'my documents'中的所有文件夹。我是Python新手,任何帮助或建议都将不胜感激。
os.listdir
返回一个任意排序的列表。此外,您可以直接迭代folder_list
而不是使用range(len())
来处理索引。 - TigerhawkT3os.listdir()
已经返回了一个list
,所以你不需要迭代它并构建一个新的列表。只需保存一个引用:folder_list = os.listdir(sys.argv[1])
。 - TigerhawkT3open()
函数来打开文件夹...尽管你在循环变量中进行了掩盖。 - TigerhawkT3