擅长:python、mysql、java
<p>正如评论中所建议的那样,下次你问一些关于SO的问题时,首先自己尝试一下,并询问任何问题——这样你会学到更多</p>
<p>下面是一个开始,正如建议的那样,下面的代码使用文件夹的内容创建3个集合,确定这三个集合的交集,然后从原始集合中删除该交集。结果准确地告诉您需要删除每个文件夹中的哪些文件:</p>
<pre class="lang-py prettyprint-override"><code>from pathlib import Path
def find_unmatched(dirs):
# list the (file) contents of the folders
contents = {}
for d in dirs:
contents[d] = set(str(n.name) for n in Path(d).glob('*') if n.is_file())
# decide what the folders have in common
all_files = list(contents.values())
common = all_files[0]
for d_contents in all_files[1:]:
common = common.intersection(d_contents)
# create a dictionary that tells you what to remove
return {d: files - common for d, files in contents.items()}
to_remove = find_unmatched(['photos/Camera1', 'photos/Camera2', 'photos/Camera3'])
print(to_remove)
</code></pre>
<p>结果(假设示例中的文件夹位于名为<code>photos</code>的文件夹中):</p>
<pre class="lang-none prettyprint-override"><code>{'photos/Camera1': {'1.tif'}, 'photos/Camera2': {'3.tif'}, 'photos/Camera3': {'1.tif', '3.tif'}}
</code></pre>
<p>实际上,删除这些文件是一些你自己可能会明白的代码</p>