Python 文件与目录处理全攻略
1. 目录文件差异比较
在处理文件和目录时,我们常常需要找出两个目录之间的差异。可以通过将两个列表转换为集合,然后进行集合相减操作来实现。以下是一个示例代码:
import os dirA = set(os.listdir("/tmp/dirA")) print(dirA) # 输出: set(['file1.txt', 'file00.txt', 'file0.txt']) dirB = set(os.listdir("/tmp/dirB")) print(dirB) # 输出: set(['file1.txt', 'file00.txt', 'file11.txt', 'file0.txt']) print(dirA - dirB) # 输出: set([]) print(dirB - dirA) # 输出: set(['file11.txt'])通过这个示例可以看到,dirB是dirA的超集,所以dirA - dirB结果为空,而dirB - dirA得到了dirB中独有的文件file11.txt。
不过,这种方法存在局限性,因为文件名可能会产生误导,例如一个 0KB 的文件和一个 200GB 的文件可能具有相同的文件名。
2. 目录合并策略
当我们需要将两个目录树合并在一起,同时避免创