compare_dir.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import zipfile
  2. import filecmp
  3. import os
  4. import shutil
  5. def extract_jar(jar_path, extract_path):
  6. with zipfile.ZipFile(jar_path, 'r') as zip_ref:
  7. zip_ref.extractall(extract_path)
  8. def compare_dirs(dir1, dir2):
  9. comparison = filecmp.dircmp(dir1, dir2)
  10. if comparison.left_only or comparison.right_only or comparison.diff_files:
  11. return False
  12. else:
  13. for subdir in comparison.common_dirs:
  14. if not compare_dirs(os.path.join(dir1, subdir), os.path.join(dir2, subdir)):
  15. return False
  16. return True
  17. def compare_jars(jar1, jar2):
  18. temp_dir1 = 'temp_dir1'
  19. temp_dir2 = 'temp_dir2'
  20. # Extract jars
  21. extract_jar(jar1, temp_dir1)
  22. extract_jar(jar2, temp_dir2)
  23. # Compare directories
  24. are_same = compare_dirs(temp_dir1, temp_dir2)
  25. # Clean up temp directories
  26. shutil.rmtree(temp_dir1)
  27. shutil.rmtree(temp_dir2)
  28. return are_same
  29. # Test
  30. jar1 = '/Users/alvin/Downloads/tmp/rxdp-dm-tag-web.jar'
  31. jar2 = '/Users/alvin/Downloads/tmp/rxdp-dm-tag-web1.jar'
  32. print(compare_jars(jar1, jar2)) # If it prints True, jars are same; otherwise, jars are different.