最近经常需要对不同文件夹中的文件进行读取和比较,因此学习了一些python的方法。下面的代码实现了读取path2和path1两个路径的文件夹,并且文件的后缀分类,通过比较去除掉后缀的文件名来比较两个文件夹的不同文件,并且将path1中不存在而path2中存在的文件复制到path1中。
import os
from shutil import copy #文件从一个路径复制到另一个路径
def fileList(path): #该函数得到一个文件列表
filelist = {}
n = 0
for root, folders, files in os.walk(path):
for file in files:
n += 1
filename = os.path.splitext(file)[0]#分离后缀
filelist[filename] = os.path.join(root, file)
#print(filelist[file])
print('\r扫描了 %s 个文件 ------- %s' % (n, path))
return filelist
def compare(path1, path2):
dict1 = fileList(path1)
dict2 = fileList(path2)
i=0
print('----------------------------------不同文件---------------------------------')
for key in dict2:
if key not in dict1:#比较去除掉后缀的文件名
print(dict2[key], sep=' <----> ')
copy(dict2[key], path1)#将路径1中不存在文件移到路径1中
# os.remove(dict2[key])
# os.remove(dict1[key])
i += 1
print(i)
if __name__ == '__main__':
path1 = r'./ECG-ecg/'#两个路径
path2 = r'./ECG_1/'
compare(path1, path2)