2017-08-04 1 views
-1

Je travaille sur une interface graphique qui lit à partir d'un fichier INI pour configurer certains boutons à l'écran. Je suis coincé en essayant de séparer certaines données qui sont renvoyées à partir du fichier INI. Essentiellement, j'ai un bouton "type" qui est l'une des 4 options et en fonction du type, l'interface graphique assignera une fonction au bouton. (J'utilise le fichier INI pour le rendre plus facile de changer les capacités des boutons dans le futur)Fichier INI Python Comment séparer le contenu de 1 variable en 3 variables distinctes

Ce que j'essaie de faire est de trier les boutons en groupes de type, puis d'identifier les boutons de ce groupe dans leur propre variable.

Voici le fichier INI pour les types de boutons:

[Button1] 
type = Run Mission 

[Button2] 
type = Set Register 

[Button3] 
type = Set Register 

[Button4] 
type = Set Register 

[Button5] 
type = Indicator 

[Button6] 
type = Set Register 

[Button7] 
type = Data 

[Button8] 
type = Data 

[Button9] 
type = Data 

Et voici le code que je cherchais à utiliser pour tirer ces données. J'utilise configparser pour lire le fichier INI. Le problème est que lorsque je print k pour tester les données entrant, il imprime type_7, type_9, type_8 et si possible; J'ai besoin de chacun d'eux dans leur propre variable ou séparés d'une manière ou d'une autre. Je n'ai pas inclus tout le code de l'interface graphique pour garder le message court, mais si plus de code est nécessaire, faites le moi savoir. Je suis plus jeune à Python et j'ai vu un tas de messages similaires, mais je n'arrive pas à trouver le moyen de le faire spécifiquement.

type_dict = {} 

    type_dict['type_1'] = config.get("Button1", "type") 
    type_dict['type_2'] = config.get("Button2", "type") 
    type_dict['type_3'] = config.get("Button3", "type") 
    type_dict['type_4'] = config.get("Button4", "type") 
    type_dict['type_5'] = config.get("Button5", "type") 
    type_dict['type_6'] = config.get("Button6", "type") 
    type_dict['type_7'] = config.get("Button7", "type") 
    type_dict['type_8'] = config.get("Button8", "type") 
    type_dict['type_9'] = config.get("Button9", "type") 

    print type_dict 

    """for k, v in type_dict.items(): 
     if v == "Run Mission": 
      print k 

    for k, v in type_dict.items(): 
     if v == "Set Register": 
      print k 

    for k, v in type_dict.items(): 
     if v == "Indicator": 
      print k""" 

    for k, v in type_dict.items(): 
     if v == "Data": 
      print k 

Toute aide est très appréciée. Merci d'avance!

+0

Explication pour le vote en baisse? –

+0

Eh bien, par exemple, la dernière boucle pour laquelle j'ai retourné plusieurs clés du dictionnaire, car plusieurs clés répondent aux critères de v == "Données". J'essayais de les renvoyer chacun dans la variable propre. Le but de faire ceci serait que j'aurais un code qui ne dépende pas de savoir combien de chaque type il y aura parce que le nombre de chaque type peut être dynamique. –

Répondre

1

Cela vous donnera une liste de clés qui ont "Data" comme valeur. Cela vous donne-t-il ce dont vous avez besoin?

data_buttons = [k for k, v in type_dict.items() if v == "Data"] 
+0

Oui, cela les a mis dans une liste que je peux ensuite analyser en variables individuelles comme je pensais. Merci pour la suggestion! –