Ich habe ein Problem, einige Werte aus einer Ini-Datei als Liste zu lesen. Ich habe ein Programm erstellt, das zwei Listen als Parameter (Quelle, Ziel) verwendet und dann die Quellpfade in die Zielpfade kopiert. Diese Pfade werden von einer Ini-Datei namens paths.ini abgerufen. Ich bemerkte jedoch, dass die Werte nicht in einer chronologischen Reihenfolge hinzugefügt wurden, was bedeutete, dass der erste Wert in der INI-Datei nicht unbedingt der erste Wert in der Liste war. Dies ist ein kritischer Fehler, da die erste Quelle nur an das erste Ziel kopiert werden soll.Lesen von Werten als eine Liste von Ini-Datei werden zufällig ausgewählt
Hier ist ein Beispielcode von dem, was ich getan habe:
try:
src = list(dict(config.items('src')).values())
dst = list(dict(config.items('dst')).values())
print("src: "+ str(src) + " dst: "+ str(dst))
except Exception as e:
messagebox.showerror("Data mismatch", "Mismatch between data from ini and core file")
sys.exit(0)
if(utilFunctions.copyto(src, dst, True)):
successCopy()
else:
errorCopy()
Für diejenigen, die die INI-Datei, um zu sehen:
[src]
src1 = C:/Users/saUser/Documents/copyExample/singleCopies/1/2/3.txt
src2 = C:/Users/saUser/Documents/copyExample/singleCopies/1/2/3.txt
[dst]
dst1 = C:/Users/saUser/Documents/copyExample/singleCopies/1
dst2 = C:/Users/saUser/Documents/copyExample/singleCopies/1
Wörterbücher in Python (und tatsächlich in den meisten Sprachen) sind ungeordnet. Warum gibst du deine 'config.items ('...')' Anrufe durch ein 'dict' weiter und wirfst sie dann zurück auf eine Liste? – Hamms
@Hamms Mein Programm nimmt zwei Listen (Quelle, Ziel) als Parameter. Weißt du einen besseren Weg, wie ich die Werte aus der Ini-Datei in einer Weise erhalten könnte, so dass die Artikel bestellt werden? – tomSurge
@tomSurge Ein besserer Weg wäre, alle Quellen/Ziele in derselben Zeile einzugeben, getrennt durch ein bekanntes Zeichen (z. B. '), und dann einfach diese Zeile zu lesen und zu teilen. Dies führt zu einem einfacheren Code und zu einer variablen Anzahl von Quellen und Zielen, ohne dass der Code geändert werden muss. – DeepSpace