Python:如何找到重复的文件夹名称并重命名它们?

时间:2013-07-18 16:00:21

标签: python

我遇到了一些python的困难。 我有一个我正在与ArcGIS一起使用的代码,它将文件名解析为数据库以返回相应的唯一ID,并使用此唯一ID重命名该文件夹。 它之前一直很好用,但我需要处理一些例外,例如当目录中已存在唯一ID时,以及目录上的操作已经完成时。唯一ID包含所有数字,所以我一直在尝试:

elif re.findall('[0-9]', fn):
 Roll = string.join(string, "1")
 print (Roll)
    os.rename(os.path.join(basedir, fn),
                os.path.join(basedir, Roll))

返回具有唯一ID的所有文件夹。我只是无法弄清楚如何计算目录中特定文件夹名称的出现次数。

3 个答案:

答案 0 :(得分:1)

将名称添加到集合中,然后检查它是否在集合中。

答案 1 :(得分:0)

执行此操作的一种方法可能如下:创建一个字典,其键是您的文件夹名称,与每个键关联的值是一个整数,即该名称的出现次数。每次处理文件夹时,都要适当更新字典的键/值。在您的集合中添加所有文件夹名称后,检查字典中的所有计数值,并且只要计数>> 1你知道你有重复。

或者,如果您需要随时检测重复项,只需检查该密钥是否已存在。在这种情况下,您根本不需要该值,您可以使用集合或列表而不是字典。

您可以使用collections.Counter来帮助您。您可以在this question中查看示例用法。根据您的需要调整该示例应该不会太困难。

希望这有帮助。

答案 2 :(得分:0)

我怀疑你对自己的这种方式比你需要的更难,但是回答你的直接问题:

folder_name_to_create = 'whatever'

if os.path.exists(folder_name_to_create):
    folder_name_to_create += '_1'

如果您遇到名称冲突,我怀疑您需要查看您的“独特”命名算法,但也许我误解了您的意思。