Bei mir öffnet sich gleich zweimal hintereinander kate mit der ausgewählten Datei, was ja nicht sein sollte.
Das ganze Konstrukt sieht so aus:
Code: Alles auswählen
def index_groupnumber():
###-1-## Basis-Haupt-/Untergruppen
# LISTE_PRODUKTGRUPPEN.txt
firstgroup = dict()
secontgroup = dict()
hauptgruppennummer = dict()
untergruppennummer = dict()
with codecs.open(liste_lieferproduktgruppen_path, "r") as infile:
reader = csv.reader(infile, delimiter="\t", quotechar="^")
for row in reader:
firstgroup[row[0]] = row[0]
secontgroup[row[1]] = row[1]
if row[2] != '':
hauptgruppennummer[row[0]] = row[2]
untergruppennummer[row[1]] = row[2]
###-2-## Hauptgruppejn aktualisieren
# LISTE_HAUPTGRUPPEN.txt
daten = set()
with codecs.open(liste_hauptgruppen_path, 'r') as infile:
reader = csv.reader(infile, delimiter="\t", quotechar="^")
for item in reader:
if item[0] == '' and hauptgruppennummer.get(item[1]):
item[0] = hauptgruppennummer.get(item[1], item[0])
daten.add(tuple(item))
write_csv(liste_hauptgruppen_path, sorted(daten))
for row in daten:
if row[0] == '':
linux = sys.platform.startswith('lin')
windows = sys.platform.startswith('win')
if linux:
subprocess.Popen(['xdg-open', liste_hauptgruppen_path])
elif windows:
pass
# os.startfile(C:\pfad\zur\datei.endung)
else:
print('Betriebssystem konnte nicht ermittelt werden.')
print('ende')
Wenn ich jetzt dies
Code: Alles auswählen
if linux:
subprocess.Popen(['xdg-open', liste_hauptgruppen_path])
in
Code: Alles auswählen
if linux:
process = subprocess.Popen(['xdg-open', liste_hauptgruppen_path])
process.wait()
abändere, kommt die Fehlermeldung
line 51, in index_groupnumber
process.wait()
NameError: global name 'process' is not defined
was mich jetzt etwas ins Straucheln bringt.
wenn ich 'wait' hinten anhänge
Code: Alles auswählen
if linux:
subprocess.Popen(['xdg-open', liste_hauptgruppen_path]).wait
wird zwar das Öffnen des zweiten Fensters verhindert, aber '.wait' sorgt auch nicht dafür. daß die letzte print-Anweisung erst nach dem Schließen des zuvor geöffneten Programmes geschieht.
Welche Fehler, habe ich hier gemacht?