ich möchte ein kleines Tool, dass mir den Ordner mit Linux *.desktop Dateien durchsucht. Die Dateien sollen dabei Zeilenweise eingelesen werden.
Ziel ist es, im Dateibrowser einen Ordner "Anwendungen" zu haben, in dem alle Anwendungen geordnet sind - ähnlich wie ein Startmenü nur im Datei Browser.
Jetzt ist es leider so, dass in den *.desktop Dateien oftmals nicht nur eine Kategorie steht. Deshalb würde ich gerne die Kategorien als Liste einlesen, diese Liste anzeigen und einen Begriff angeben. So will ich eine "Datenbank" erstellen, damit das Script bei einer neuen Datei entscheiden kann in welchen Ordner gespeichert werden soll. Ich dachte an ein Dictionary, bein dem der Key der vom User eingegebene Ordnername ist und als Value eine Liste mit den Kategorien. Dabei sollen die Values natürlich ergänzt werden können, wenn eine andere Anwendung Kategorien hat, die ich einem bereits vohandenen Ordner zuordnen will, und dabei Duplikate vermieden.
Hat die Anwendung X in den Kategorien also "System Printing Settings" stehen und ich möchte diese als System speichern, dann soll das Dictionary so ausssehen:
Code: Alles auswählen
{'System': '['Sytem", "Printing", "Settings]'}
Code: Alles auswählen
{'System': '["System", "Printing", "Settings", "Hardware"]'
Code: Alles auswählen
import os
import sys
from glob import glob
catgs = []
data = {}
for files in glob(os.path.join("/usr/share/applications/", "*.desktop")):
with open(files) as f:
for line in f:
if line.startswith("Categories="):
cat = line.strip("Categories=").split(";")
catgs.append(cat)
print("Kategorien: " + str(cat))
var = input("Speichern unter: ")
data[var] = catgs
print(data)
catgs = []