使用前需要安装以下依赖
pip install pywin32
pip install setuptools
使用方式
comparison.py current_dir standard_dir
参数说明
current_dir
: 当前目录,默认文件为高版本standard_dir
: 标准目录,默认文件为低版本
运行完该脚本后会在活动目录输出对比结果文件comparison_result.txt
,包括以下内容
- 文件数量
- 文件仅在一侧
- 文件版本对比信息
代码如下,欢迎参考 🙂
import argparse
from filecmp import dircmp
import os
from win32com.client import Dispatch
from packaging import version
# 已知某个文件名在某个目录(或者该目录子目录)中,获取文件全路径
def getFileFullPath(folder, filename):
filepath_list = []
for root, folder_names, file_names in os.walk(folder):
for file_name in file_names:
if file_name == filename:
file_path = root + os.sep + file_name
filepath_list.append(file_path)
return filepath_list
# 获取文件版本信息
def getFileVersion(filepath):
parser = Dispatch("Scripting.FileSystemObject")
version = parser.GetFileVersion(filepath)
return version
# 将结果写入文件并打印出来
def witreAndPrintResult(txt_list, output_file):
f = open(output_file, mode="w+", encoding="UTF-8")
print("\n")
print("Output result file -- {result}".format(result=output_file))
print("\n")
for line in txt_list:
f.write("\n")
f.write(line)
print(line)
f.close()
# 第一个输入参数 - 当前Earth版本,一般版本号比第二个大
# 第二个输入参数 - 标准对比Earth版本
# 返回描述信息List
def compareDir(current_dir, standa