Witam serdecznie, poszukuję rozwiązania aby skrypt po uruchomieniu zaczekał aż zamkniemy okno w tym przypadku notatnika i po zamknięciu wykonała się reszta skryptu. Poszukiwałem podobnych rozwiązań ale niestety nic konkretnego nie znalazłem
import datetime
import sys
import webbrowser
filename1 = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
sys.stdout = open(filename1 + '.txt', 'w')
webbrowser.open(filename1 + '.txt')
# w tym miejscu skrypt powinien zaczekać na zamknięcie okna i po zamknięciu wykonać dalszą część czyli zliczyć ilość wpisanych linii w pliku
count = len(open(filename1 + '.txt', 'r').readlines())
print(count)
``` python
Notatnika w sensie notepad.exe
czy jakiś inny gedit
? Bo tu widzę, że otwierasz notatnik modułem webbrowser
który, jeśli dobrze rozumiem opis w dokumentacji, otwiera przeglądarkowy edytor dokumentu z podanego jako argument URLa....
Swoją drogą, po co przekierowujesz sys.stdout do tego pliku i to w kodzie, skoro potem edytujesz go (jak się domyślam) w edytorze, a w dodatku printujesz zawartość po otwarciu go ponownie? Już pomijam to, czy ten fragment zadziała, po prostu... po co?
Gdyby satysfakcjonowało Cię użycie jakiegoś powiedzmy dowolnego edytora plików tekstowych, to mógłbyś sie uciec do uruchomienia go poprzez moduł subprocess
import subprocess
import datetime
filename = datetime.datetime.now().strftime("%Y%m%d-%H%M%S") + ".txt"
subprocess.run(["gedit", filename])
subprocess.run
czy podobna funkcja może czekać, aż wywołane polecenie się zakończy, co więcej pozwalają na przechwytywanie stdout
, stderr
, tworzenie pipe'ów i inne takie.