如果找到重复的文件名,则发出警报并停止脚本

时间:2019-02-25 16:10:52

标签: python-3.x glob

我试图在几个子文件夹中找到任何重复的文件名,并停止脚本并提示用户有关重复的文件名。

使用以下示例文件名:

permissions = (("can_read", "Can read"),)

重复的文件名可以在任何子文件夹中(-副本只是试图模仿文件名,但是代码应该能够基于文件名中的DDMMYYYY知道它是重复的文件。)

我尝试了以下代码:

Money_03012019_2019.csv
Money_04012019_2019.csv
Money_04012019_2019 - Copy.csv
Money_05012019_2019.csv
Money_06012019_2019.csv

但是即使在我玩耍后,它也仍然不起作用。我以为set()和len方法是解决问题的方法(set将通过检查它是否等于flist的长度来避免重复)?

谢谢。

1 个答案:

答案 0 :(得分:0)

glob.glob()返回文件路径的列表,而不是名称,因此列表中的所有内容都是唯一的。

例如:

['./Money.csv', './Money_Folder/Money.csv']

一个简单的解决方案是:

for i in range(len(flist)):
    flist[i] = flist[i].split("/")[-1]

这将删除路径的目录部分,仅保留文件名列表,然后可使用len(set(flist)) == len(flist)检查文件名。