import configparser
def filter_config(config_file, filter_criteria):
"""
Filters data from a configuration file based on specified criteria.
Args:
config_file (str): Path to the configuration file.
filter_criteria (dict): A dictionary specifying the filter criteria.
Keys are section names, and values are lists of key-value pairs to keep.
Returns:
dict: A dictionary containing the filtered configuration data. Returns an empty dictionary if the file doesn't exist.
"""
config = configparser.ConfigParser()
try:
config.read(config_file)
except configparser.Error:
print(f"Error reading config file: {config_file}")
return {}
filtered_data = {}
for section in config.sections():
if section in filter_criteria:
filtered_data[section] = {}
for key, value in filter_criteria[section]:
if key in config[section] and config[section][key] == value:
filtered_data[section][key] = config[section][key]
return filtered_data
Add your comment