1. import configparser
  2. def filter_config(config_file, filter_criteria):
  3. """
  4. Filters data from a configuration file based on specified criteria.
  5. Args:
  6. config_file (str): Path to the configuration file.
  7. filter_criteria (dict): A dictionary specifying the filter criteria.
  8. Keys are section names, and values are lists of key-value pairs to keep.
  9. Returns:
  10. dict: A dictionary containing the filtered configuration data. Returns an empty dictionary if the file doesn't exist.
  11. """
  12. config = configparser.ConfigParser()
  13. try:
  14. config.read(config_file)
  15. except configparser.Error:
  16. print(f"Error reading config file: {config_file}")
  17. return {}
  18. filtered_data = {}
  19. for section in config.sections():
  20. if section in filter_criteria:
  21. filtered_data[section] = {}
  22. for key, value in filter_criteria[section]:
  23. if key in config[section] and config[section][key] == value:
  24. filtered_data[section][key] = config[section][key]
  25. return filtered_data

Add your comment