Python遍历两个文件夹
在日常的开发工作中,我们经常需要遍历文件夹来查找特定的文件或者对文件进行处理。Python提供了多种方法来遍历文件夹,本文将介绍如何使用Python遍历两个文件夹,并列出相同和不同的文件。
准备工作
在开始之前,我们需要准备两个文件夹,分别命名为folder1
和folder2
。这两个文件夹中可以包含任意数量和类型的文件。
方法一:使用os.walk()
Python的标准库os
中提供了walk()
函数,可以用于遍历文件夹。下面是使用os.walk()
函数遍历两个文件夹,并打印出相同和不同的文件名的示例代码:
import os
folder1 = 'path/to/folder1'
folder2 = 'path/to/folder2'
# 获取folder1中的所有文件名
files1 = []
for dirpath, dirnames, filenames in os.walk(folder1):
for filename in filenames:
files1.append(filename)
# 获取folder2中的所有文件名
files2 = []
for dirpath, dirnames, filenames in os.walk(folder2):
for filename in filenames:
files2.append(filename)
# 打印相同的文件名
common_files = list(set(files1) & set(files2))
print("相同的文件名:")
for file in common_files:
print(file)
# 打印不同的文件名
unique_files = list(set(files1) ^ set(files2))
print("不同的文件名:")
for file in unique_files:
print(file)
上述代码首先使用os.walk()
函数遍历folder1
和folder2
中的文件夹,并将文件名保存在files1
和files2
列表中。然后,使用set
数据结构求取两个列表的交集,即相同的文件名,将其保存在common_files
列表中。最后,使用set
数据结构求取两个列表的差集,即不同的文件名,将其保存在unique_files
列表中,并打印出结果。
方法二:使用os.scandir()
除了os.walk()
函数,Python的标准库os
中还提供了scandir()
函数,可以更高效地遍历文件夹。下面是使用os.scandir()
函数遍历两个文件夹,并列出相同和不同的文件名的示例代码:
import os
folder1 = 'path/to/folder1'
folder2 = 'path/to/folder2'
# 获取folder1中的所有文件名
files1 = [entry.name for entry in os.scandir(folder1) if entry.is_file()]
# 获取folder2中的所有文件名
files2 = [entry.name for entry in os.scandir(folder2) if entry.is_file()]
# 打印相同的文件名
common_files = list(set(files1) & set(files2))
print("相同的文件名:")
for file in common_files:
print(file)
# 打印不同的文件名
unique_files = list(set(files1) ^ set(files2))
print("不同的文件名:")
for file in unique_files:
print(file)
上述代码使用os.scandir()
函数遍历folder1
和folder2
中的文件夹,并判断每个条目是否为文件,如果是文件则将其文件名保存在files1
和files2
列表中。然后,使用set
数据结构求取两个列表的交集,即相同的文件名,将其保存在common_files
列表中。最后,使用set
数据结构求取两个列表的差集,即不同的文件名,将其保存在unique_files
列表中,并打印出结果。
总结
本文介绍了两种使用Python遍历两个文件夹的方法,分别是使用os.walk()
函数和os.scandir()
函数。这两种方法都可以实现相同的功能,只是实现的方式略有不同。在使用时,可以根据实际情况选择合适的方法。
希望本文能对你理解如何使用Python遍历两个文件夹有所帮助。如果有任何疑问或建议,欢迎留言讨论。
pie
title 文件夹中的