如何遍历两个不同文件夹中的文件以获得每个具有相同名称的文件对的差异(无论哪个库)?
How to loop through files in two different folders to get the diff (no matter which library) of each file pair with the same names?
我手头有一个库来比较两个文件,获取差异。图书馆在问题中没有发挥作用。
我可以通过输入文件的文件路径来一次比较两个文件,但由于我有几个文件需要比较,我正在考虑自动化,而不需要输入文件路径每次。
例如:
- 文件夹 1:文件 1、文件 2、文件 3、文件 4
- 文件夹 2:文件 1、文件 3
(同名)
我想比较文件夹1的file1和文件夹2的file1等等,以名称为匹配点一次性比较。
我该怎么做?
从您上面的评论来看,您似乎已经拥有了使文件差异化的库,并且只需要一种遍历目录树的方法。您可以查看 os.listdir
并循环遍历 folder1 中的所有文件,然后使用文件名来确定 folder2 中第二个文件的名称。
离开你的例子,可能是这样的。
for file_name in os.listdir('./folder1'):
file_1_path = os.path.join('./folder1', file_name)
name, ext = os.path.splitext(file_name)
file_2_path = os.path.join('./folder2', name + name[-1] + ext)
f1 = open(file_1_path, 'r')
f2 = open(file_2_path, 'r')
( diff logic here )
我手头有一个库来比较两个文件,获取差异。图书馆在问题中没有发挥作用。
我可以通过输入文件的文件路径来一次比较两个文件,但由于我有几个文件需要比较,我正在考虑自动化,而不需要输入文件路径每次。
例如:
- 文件夹 1:文件 1、文件 2、文件 3、文件 4
- 文件夹 2:文件 1、文件 3
(同名)
我想比较文件夹1的file1和文件夹2的file1等等,以名称为匹配点一次性比较。
我该怎么做?
从您上面的评论来看,您似乎已经拥有了使文件差异化的库,并且只需要一种遍历目录树的方法。您可以查看 os.listdir
并循环遍历 folder1 中的所有文件,然后使用文件名来确定 folder2 中第二个文件的名称。
离开你的例子,可能是这样的。
for file_name in os.listdir('./folder1'):
file_1_path = os.path.join('./folder1', file_name)
name, ext = os.path.splitext(file_name)
file_2_path = os.path.join('./folder2', name + name[-1] + ext)
f1 = open(file_1_path, 'r')
f2 = open(file_2_path, 'r')
( diff logic here )